Какие показатели изображения использовать для выбора изображений для миниатюр?

Я хотел бы автоматизировать процесс создания эскизов / контактных листов для видео. Обычно это матрицы изображений mxn, например 6x11 или 8x12 и т. Д. Случайно выбранные изображения иногда бывают плохого качества: содержат движение (размытое изображение), размах камеры (тоже размытый), слишком темный или полностью черный, или полностью белый, без деталей и т. Д. . В настоящее время я использую размер файла изображения jpg для метрики изображения: больший размер файла -> подробнее на картинке. В сочетании с количеством цветов (можно определить с помощью команды ImageMagick "identify -format% k"). Я нормализую оба значения к интервалу 0,0–1,0, разделив его на наибольшее значение в группе изображений, а затем вычисляю следующую метрику:

gamma*number_of_colors^2+(1-gamma)*file_size^2

Где гамма - это весовой параметр и может находиться в интервале 0,0–1,0. Какие еще подходы, метрики изображений можно использовать для этой цели?


person Konstantin    schedule 26.12.2015    source источник


Ответы (1)


Если вас интересует резкость / размытость, вы можете перейти к оттенкам серого и запустить обнаружение краев (например, Canny), которое даст вам в целом черное изображение с белыми областями, где обнаруживаются резкие края. Если вы возьмете среднюю яркость такого изображения (или посчитаете белые пиксели и разделите на площадь изображения в пикселях), те, которые имеют более высокую яркость, будут иметь более резкие края.

convert image.jpg -colorspace gray -canny 0x1+10%+30% -format "%[fx:mean]" info:

Итак, в качестве примера ... используя это резкое изображение:

введите описание изображения здесь

Тестирую резкость:

convert sharp.jpg -colorspace gray -canny 0x1+10%+30% -format "%[fx:mean]" info:
0.00485202

Теперь с размытой версией:

введите описание изображения здесь

Теперь я получаю это:

convert blurred.jpg -colorspace gray -canny 0x1+10%+30% -format "%[fx:mean]" info:
0.00261855
person Mark Setchell    schedule 26.12.2015