Как определить кадры для сохранения или удаления на основе уровней яркости?

У меня есть серия изображений с замедленной съемкой пульсирующих электрических разрядов. Многие кадры почти черные. Я хотел бы выборочно оставить более интересные кадры; например, иметь больше яркости.

Я рассматривал возможность использования ImageMagick или GraphicsMagick (или любого другого, не связанного с каким-либо инструментом - я готов к более эффективным предложениям).

Как мне выбрать такие изображения, а затем отбросить другие изображения без заметных уровней яркости? Я предполагаю, что мне нужно сначала установить базовую линию «черного», а затем, возможно, визуально найти наименее яркое изображение кадра, а затем использовать его в качестве нижнего предела для получения значимых изображений / кадров...

Пример DISCARD ("пустой" кадр):

пусто

Пример KEEP (фрейм с «данными»):

данные


person ylluminate    schedule 21.08.2017    source источник
comment
Каков формат последовательности? Это MOV или AVI и т. д.? Можете ли вы предоставить образец нескольких секунд с некоторыми скучными и интересными вещами, пожалуйста? Какую ОС вы используете?   -  person Mark Setchell    schedule 25.08.2017
comment
Привет - есть кто?   -  person Mark Setchell    schedule 28.08.2017
comment
@MarkSetchell здесь немного запутался. Постараюсь что-нибудь поставить, когда вернусь в офис в ближайшие пару дней.   -  person ylluminate    schedule 28.08.2017


Ответы (2)


Я бы предложил ImageMagick размыть изображение (шум очистки), преобразовать данные в монохромное двоичное изображение и распечатать среднее статистическое значение изображения.

convert 5HzsV.jpg -format "%[mean]" -monochrome -morphology Erode Diamond  info:
# => 0
convert lLZFX.jpg -format "%[mean]" -monochrome -morphology Erode Diamond  info:
# => 149.992

Таким образом, сценарий bash может быть таким же простым, как...

for image in $(ls *.jpg)
do
   L=$(convert "$image" -format "%[mean]" -monochrome -morphology Erode Diamond  info:)
   if [[ $L -gt 0 ]]; then
       echo "Image $image is not empty! @ $L"
   fi
done

Конечно, это можно настроить в соответствии с вашими потребностями.

person emcconville    schedule 21.08.2017
comment
Мне любопытно. У меня так много в пути видеоматериалов для обработки, есть ли у вас мысли в способе обработки видео без извлечения всех кадров и просто покадрового обхода, дабы уменьшить дополнительный размер от хранения болванки кадры? - person ylluminate; 21.08.2017

Судя по способу кодирования изображений, вы, вероятно, обнаружите, что «интересные» изображения больше, потому что равномерно темный фон сжимается лучше, чем случайная искра. Например, ваш пустой Jpeg — 21К, а интересный — 39К.

person xenoid    schedule 21.08.2017
comment
Это неплохая идея. Большая проблема здесь в том, что у меня еще не извлечены все кадры, так как я работал над выяснением метода покадрового анализа вместо того, чтобы сначала хранить все их в папках. - person ylluminate; 21.08.2017
comment
Вы можете сделать выборку из текущих и установить пороговый размер. - person xenoid; 22.08.2017