Телескопы покупают здесь


A A A A Автор Тема: Автокроп AVI  (Прочитано 11226 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Александр НедилькоАвтор темы

  • *****
  • Сообщений: 533
  • Благодарностей: 7
    • Сообщения от Александр Недилько
Автокроп AVI
« : 07 Июн 2006 [15:20:55] »
Встречал довольно много вопросов про автокроп - ProGuider есть не у всех. Может , конечно, есть еще софт - но я решил из спортивного интереса сваять свой. За 1,5 дня освоился с ави - и выкладываю первый скромный результат - авось кому пригодится.
http://naualex.mylivepage.ru/file - там найдете.
Просьба ногами не пинать - работает медленно и только с 24битным цветом.

Ростов-на-Дону, SW1149EQ2, доб 255мм

Оффлайн Mihail Sedyh

  • *****
  • Сообщений: 5 973
  • Благодарностей: 34
    • Сообщения от Mihail Sedyh
Re: Автокроп AVI
« Ответ #1 : 07 Июн 2006 [16:02:36] »
А можно пояснить как этим пользоваться?
Что такое "яркость фона" к примеру?
У меня не работает. Результирующий файл забивается картинками с Землей.
И каков принцип работы? Прога сама заценивает где собственно диск планеты?
"Алькор", Бинокль 10х50, Coronado PST, доб 235/1157, МТ-3С

Оффлайн Александр НедилькоАвтор темы

  • *****
  • Сообщений: 533
  • Благодарностей: 7
    • Сообщения от Александр Недилько
Re: Автокроп AVI
« Ответ #2 : 07 Июн 2006 [16:18:34] »
Яркость фона - это значение R+G+B компонент пикселя, при равном или большем которого пиксель считается принадлещащим изображению планеты.
Да, вычисляется "центр тяжести" изображения, вырезается заданный кусок.
Я проверял на несжатом avi  24bit-вом.
Ростов-на-Дону, SW1149EQ2, доб 255мм

Оффлайн Mihail Sedyh

  • *****
  • Сообщений: 5 973
  • Благодарностей: 34
    • Сообщения от Mihail Sedyh
Re: Автокроп AVI
« Ответ #3 : 07 Июн 2006 [16:59:12] »
Яркость фона - это значение R+G+B компонент пикселя, при равном или большем которого пиксель считается принадлещащим изображению планеты.
Просто сумма и еще делить на 3. Т.е. максимальное значение 255 или 765?

Я проверял на несжатом avi 24bit-вом.
Аналогично, но не пашет.... ???

Да, и что будет если область кропа выходит за пределы кадра?
"Алькор", Бинокль 10х50, Coronado PST, доб 235/1157, МТ-3С

Оффлайн Александр НедилькоАвтор темы

  • *****
  • Сообщений: 533
  • Благодарностей: 7
    • Сообщения от Александр Недилько
Re: Автокроп AVI
« Ответ #4 : 07 Июн 2006 [17:05:38] »
Просто сумма.
Что пишет? прокручивается ролик в первом окне или нет? Предлагает выбрать кодек для записи?
Если выйдет за пределы или будет просто темный кадр, то в первом окне спозиционируется в левый верхний угол, в результат пойдет или пустой или предыдущий кадр. Хотя этот вопрос надо уточнить, у меня нет таких AVI. Поищу. А лучше пришлите такой есть.
Ростов-на-Дону, SW1149EQ2, доб 255мм

Оффлайн Mihail Sedyh

  • *****
  • Сообщений: 5 973
  • Благодарностей: 34
    • Сообщения от Mihail Sedyh
Re: Автокроп AVI
« Ответ #5 : 07 Июн 2006 [17:26:22] »
Цитата
Просто сумма.
Тогда уж лучше в %. Или определить максимальную яркость пикселя на первом кадре и установить автоматом(м.б. с возможностью коррекции) этот параметр в 70-80% от этой яркости...
Кстати наверное лучше и область кропа задавать полными значениями, а не половинными.

Цитата
Что пишет? прокручивается ролик в первом окне или нет? Предлагает выбрать кодек для записи?
Ничего нигде не прокручивается. Открываю программу (посередине лист с перфорацией, справа заставка "Земля", снизу параметры), задаю параметры, нажимаю "Старт". Предлагает выбрать ролик в отдельном окошке - выбираю (лист с перфорацией изчезает- серый фон, заставка смещается в зависимости от размеров области кропа, снизу появляется общее количество кадров в ролике) . Предлагет выбрать кодек - выбираю (ничего не меняется - серый фон, бежит счетчик кадров). Появляется сообщение. что АВИ-файл создан. Все.
Весь созданный файл(правильной длительности и размера) состоит из кусочка заставки, соответствующего тому, что видно справа при выборе ролика.

Цитата
А лучше пришлите такой есть.
Он весит 45 мегов.

Вообще вещь очень полезная (если будет нормально работать), а если еще сможет делить ролик на 3 ч\б поканальных, то цены ей не будет...
 
"Алькор", Бинокль 10х50, Coronado PST, доб 235/1157, МТ-3С

Оффлайн Александр НедилькоАвтор темы

  • *****
  • Сообщений: 533
  • Благодарностей: 7
    • Сообщения от Александр Недилько
Re: Автокроп AVI
« Ответ #6 : 07 Июн 2006 [17:40:24] »
Идеи насчет % и поканальных роликов хорошие - реализую.
А можете VirtualDub-ом вырезать небольшой кусок вашей avi-шки и прислать мне - без этого сказать что-то трудно.
Это будет очень полезно в плане отладки, поскольку на моих материалах - работает, а других у меня нет.
Ростов-на-Дону, SW1149EQ2, доб 255мм

Оффлайн Mihail Sedyh

  • *****
  • Сообщений: 5 973
  • Благодарностей: 34
    • Сообщения от Mihail Sedyh
Re: Автокроп AVI
« Ответ #7 : 07 Июн 2006 [18:18:07] »
Так, кажется разобрался - яркость планеты была слишком низкой. После применения к ролику фильтра автоэкспозиции вроде заработало (действительно м-е-е-е-едленоо  ;D). Наверное можно было и так заставить работать, но при таких раскладах подбор правильной "яркости  фона" становится длительным и занудливым занятием.....  Кстати насколько я понял размеры области задаются все же полными, не смотря на надписи.... ???

А можно еще реализовать сдвиг изображения относительно центра области, что б спутник к примеру захватить...?
"Алькор", Бинокль 10х50, Coronado PST, доб 235/1157, МТ-3С

Оффлайн Mihail Sedyh

  • *****
  • Сообщений: 5 973
  • Благодарностей: 34
    • Сообщения от Mihail Sedyh
Re: Автокроп AVI
« Ответ #8 : 07 Июн 2006 [19:09:53] »
Хм, интересное кино...
После сворачивания в трей до окончания работы больше не разворачивается.
Обработал ролик: 720х576 пикселей, 24 бита, 13,00 секунд, 25к\сек, 325 кадров (13*25), непожатый, вес соответственно 720*576*3*325=385Мегов.
Заданные параметры: область 50х50, яркость фона 200, 25к\сек, файл - по умолчанию.
Получил в результате следующий ролик: 98х98 пикселей  ???, 24бита, 13,40 секунд  ???, 25к\сек,  326кадров  ??? (13,4*25=335  ???), вес 36 Мегов  :o ??? ??? (вместо 98*98*3*326 = 9 мегов).
Кроме того такое ощущение, что программа вначале увеличила кадр вдвое, а область кропа не увеличила, в результате в область кропа влезло в 4раза по площади исходника меньше, чем должно было....(зато в двойном масштабе.)

Кстати если уж программа работает только с небольшим светлым объектом на темном фоне, может стоит предварительно центрироваться на самую яркую точку кадра, а дальше взвешивать не весь кадр, а только область кропа... ну или еще как-нибудь оптимизировать аглоритм...

И еще, раз уж Вы влезли в формат АВИ, можно ли корректно менять частоту кадров? А то некоторое ПО не справляется и начинает пропускать кадры. Т.е. можно ли из ролика 10сек, 25к\сек, 250кадров, сделать ролик скажем 50секунд, 5к\сек, 250 кадров (кадры разумеетсядолжны остаться теми же самыми?

Вспомнил, корректно ли Ваша программа воспринимает различные варианты развертки?
"Алькор", Бинокль 10х50, Coronado PST, доб 235/1157, МТ-3С

Оффлайн Александр НедилькоАвтор темы

  • *****
  • Сообщений: 533
  • Благодарностей: 7
    • Сообщения от Александр Недилько
Re: Автокроп AVI
« Ответ #9 : 08 Июн 2006 [10:17:11] »
Спасибо за тестирование, Михаил.
Буду разбираться. По поводу размеров кропа.
Там все-таки размеры половинные, т.е. они потом умножаются на 2, но я отступаю по пикселю с краев, чтобы "прицел" не попадал в кадр, поэтому вместо 100х100 получилось 98х98  ;D. Конечно , сделаю покрасивее.
По скорости : вроде использую оптимальные по скорости методы, но все равно - медленно.
Буду изучать варианты- может можно задействовать другую виндовую технологию - или оптимизировать сам алгоритм.
Как я уже сказал сваял все за 1,5 дня - мне была важна принципиальная возможность. Теперь надо доводить до ума.
Надеюсь, при помощи заинтересованных людей  ;).
Ростов-на-Дону, SW1149EQ2, доб 255мм

Оффлайн Александр НедилькоАвтор темы

  • *****
  • Сообщений: 533
  • Благодарностей: 7
    • Сообщения от Александр Недилько
Re: Автокроп AVI
« Ответ #10 : 08 Июн 2006 [10:33:13] »
Проверил по размерам выходного файла - я пробовал на avi-шке с цифромыльницы, т.е. там не Interlaced, у меня размер правильный.
Так что, скорее всего, проблема с Interlaced разверткой.
Ростов-на-Дону, SW1149EQ2, доб 255мм

Оффлайн Александр НедилькоАвтор темы

  • *****
  • Сообщений: 533
  • Благодарностей: 7
    • Сообщения от Александр Недилько
Re: Автокроп AVI
« Ответ #11 : 08 Июн 2006 [12:41:02] »
Сделал версию 1.4 - проблема со скоростью решена!
Решена путем модификации алгоритма - сначала используется полный скан, потом сканируется только кусок вокруг кропа.
Размер этой области задается коэффициентом, на который умножаются стороны кропа. Если яркость некоторого кропа в результате частичного скана меньше предыдущей , умноженной на коэффициент падения яркости, то объект считается потерянным, и производится полный скан.
Пока не публикую новую версию, так как хочу причесать прогу по остальным замечаниям.
По развертке - даже не знаю, возится ли с ней  ???. Ведь если развертка не прогрессивная, то все равно в VitrtualDub желательно применить DeInterlace.
Ростов-на-Дону, SW1149EQ2, доб 255мм

Оффлайн Mihail Sedyh

  • *****
  • Сообщений: 5 973
  • Благодарностей: 34
    • Сообщения от Mihail Sedyh
Re: Автокроп AVI
« Ответ #12 : 08 Июн 2006 [14:22:02] »
Цитата
умноженной на коэффициент падения яркости,
Этот коэффициент тоже задается?
Цитата
По развертке - даже не знаю, возится ли с ней  Huh. Ведь если развертка не прогрессивная, то все равно в VitrtualDub желательно применить DeInterlace.
Пока наверное не стоит (ибо довольно сложно), просто я хотел озвучить проблему. При съемки видеокамерой с рук, если поставить выдержку меньше(ну пусть 1\1000)  стандартной 1\50сек (ее камера снимает нормально, т.е. 1\50 первый полукадр+1\50 второй полукадр =25к/сек), то камера делает следующее: снимает первый полукадр 1\1000сек, !ждет 19/1000сек, снимает второй полукадр 1\1000сек, ждет оставшиеся (до 1\25сек) 19/1000сек. В результате преимущества от короткой выдержки полностью нивелируются межполукадровым смазом, который может достигать половины диска планеты. Ни видеоредакторы ни Регистакс таки вещи корректно не обрабатывают.
"Алькор", Бинокль 10х50, Coronado PST, доб 235/1157, МТ-3С

Оффлайн Александр НедилькоАвтор темы

  • *****
  • Сообщений: 533
  • Благодарностей: 7
    • Сообщения от Александр Недилько
Re: Автокроп AVI
« Ответ #13 : 08 Июн 2006 [19:17:16] »
Let me introduce version 1.7  ;D.
Итак, что мы имеем:
1) Нормальная скорость 2) Возможность поканальной записи 3) Регулируемая частота кадров выходных файлов 4) Настройка на фон через коэффициент 5) Так же через коэффициенты настраивается область частичного поиска и падение яркости при потере объекта 6) Путем создания отдельного потока для вычислений прога теперь нормально регаирует на свертку и кнопку "Стоп" - вот с этим в борландовском VCL пришлось помучиться  :P. 7) Размеры кропа теперь полные, а не половинки, но по пикселю с краев по-прежнему отступаю  ;).
Более подробно:
Коэфф. яркости - значение, на которое умножается максимальная яркость пикселя для получения яркости фона, т.е. те пиксели яркость которых выше, считаются принадлежащими объекту. Вычисленное абсолютное значение высвечивается рядом красным цветом.
Коэфф.поиска - значение, на которое умножаютя линейные размеры кропа, для получения области поиска объекта, в которой он прежде всего будет искаться. Это для сокращения количества полных сканов.
Коэфф. падения яркости - это значение, на которое умножается средняя яркость кропа, чтобы определить, нашли мы объект или нет.
Если яркость текущего кропа меньше яркости предыдущего * коэфф.падения яркости, то считаем, что объект потерян, проводим полный поиск.
В названии теперь не надо добавлять .avi.
Если выбран поканальный режим, к соответствующим файлам добавяться буквы r,g,b.
Можно задавать любую частоту кадров - с этим значением и будут писаться выходные ролики.
Ну, вроде, ничего не забыл.
Ростов-на-Дону, SW1149EQ2, доб 255мм

Оффлайн Александр НедилькоАвтор темы

  • *****
  • Сообщений: 533
  • Благодарностей: 7
    • Сообщения от Александр Недилько
Re: Автокроп AVI
« Ответ #14 : 08 Июн 2006 [19:40:20] »
Вот ссылка поудобнее http://naualex.mylivepage.ru/file/81/419/PlanetCrop17.rar.
Ростов-на-Дону, SW1149EQ2, доб 255мм

Оффлайн Александр НедилькоАвтор темы

  • *****
  • Сообщений: 533
  • Благодарностей: 7
    • Сообщения от Александр Недилько
Re: Автокроп AVI
« Ответ #15 : 13 Июн 2006 [08:39:29] »
Куда-то Михаил запропастился, а больше никому не интересно :'(.
Ну да ладно поговорим сами с собой  ;D.
Я тут подумал, что может быть поканальные должны быть 8-битными ?
Ростов-на-Дону, SW1149EQ2, доб 255мм

Оффлайн Александр НедилькоАвтор темы

  • *****
  • Сообщений: 533
  • Благодарностей: 7
    • Сообщения от Александр Недилько
Re: Автокроп AVI
« Ответ #16 : 13 Июн 2006 [10:42:53] »
В общем, нет - 24 бита должны быть, только надо не давить все каналы, кроме , соответственно r, или b,или g, а , наоборот, дублировать этот канал в остальных - тогда получится черно-белый ролик по каждому каналу. Что и реализовано в версии 1.8.
Ростов-на-Дону, SW1149EQ2, доб 255мм

Оффлайн Mihail Sedyh

  • *****
  • Сообщений: 5 973
  • Благодарностей: 34
    • Сообщения от Mihail Sedyh
Re: Автокроп AVI
« Ответ #17 : 13 Июн 2006 [15:50:11] »
На даче я был.
Ролик канала должен быть 8-битным. Зачем нужны три копии одного и того же, только место занимать? Впрочем можно оставить это как опцию - не все программы могут корректно воспринять ч\б 8-бит ролик.

Новую версию покручу при первой возможности.
"Алькор", Бинокль 10х50, Coronado PST, доб 235/1157, МТ-3С

Оффлайн Mihail Sedyh

  • *****
  • Сообщений: 5 973
  • Благодарностей: 34
    • Сообщения от Mihail Sedyh
Re: Автокроп AVI
« Ответ #18 : 14 Июн 2006 [21:56:40] »
Александр, покрутил  версию 1.7 немного.
1) Насчет канальных роликов. Не знаю что там с форматами, но АВИРАВ к примеру как-то умудряется записать ч\б ролик с одним каналом (в смысле непожатый канальный весит в три раза меньше цветного) - правда они то и глючат иногда при обработке сторонним софтом. Если это сделать невозможно, то пусть лучше будет по три копии одного канала. (наколько я понял это уже реализовано в версии 1.8).
2) Скорость все же недостаточна (при записи поканальных роликов - вообще [----]). Надо как-то увеличить хотя бы раза в 3.
3) После завершения обработки (или после ее принудительного прерывания), не могу заново инициировать процесс (с другими параметрами, или другой ролик) - приходится перезагружать.
4) В записанном ролике остаются ошметки рамочки. Регистакс будет крайне недоволен. Наверное стоит отступать по 2 или 3 пикселя с каждой стороны. Только, чтобы если пользователь задал область 100х100, то результирующий ролик тоже должен быть 100х100, а работать с областью 104х104 или 106х106.
5) Планета довольно сильно плавает по области кропа, не могу сказать с чем это связано.
5 с половиной) Было бы неплохо видеть название/путь обрабатываемого ролика.  И возможно время обработки/оставшееся время в основном для отладки алгоритмов.

Пока вроде все.     

Да вот еще, неплохо бы где-нибудь найти кодеки для миниДВ-видеокамер. Лично меня интересует DV Video Encoder - type2.
"Алькор", Бинокль 10х50, Coronado PST, доб 235/1157, МТ-3С

Оффлайн Александр НедилькоАвтор темы

  • *****
  • Сообщений: 533
  • Благодарностей: 7
    • Сообщения от Александр Недилько
Re: Автокроп AVI
« Ответ #19 : 15 Июн 2006 [17:03:12] »
Работаю над версией 1.9. Скорость удалось поднять в 4 раза - за счет прямой работы с памятью.
Ростов-на-Дону, SW1149EQ2, доб 255мм