2014-11-05 5 views
1

У меня есть тысячи изображений, снятых для 3D-реконструкции с использованием фотограмметрии, и я хочу оценить, какие изображения тоже blurry с помощью Imagemagick или любой другой командной строки, способной к программному обеспечению. Что означает слишком blury: в зависимости от средней размытости/резкости всех изображений, худшие изображения можно легко выбрать. Но как оценить размытость. Я перешел в FFT, Fast Fournier Transform и думаю, что здесь можно найти решение. Частоты могут быть вычислены командой IM -fft, которая производит изображения величин и фаз. Как можно использовать эти изображения для расчета общего коэффициента размытости/резкости?Оценить размытость/резкость похожих изображений

Обновление: Вот некоторые из изображений, которые мне нужно лечить. Реальная проблема заключается в том, что все изображения находятся рядом со многими другими из этих видов в одной папке и должны быть проверены на проблемы с размытием изображения. Я должен обнаруживать слишком высокое размытие движения и избегать этих изображений в дальнейшем производстве.

Следующие 3 изображения имеют из всех изображений самые низкие отклонения, но очень резкие в исходной полноразмерной версии.

enter image description here

enter image description here

enter image description here

Эти 2 изображения имеют меньшее отклонение из-за белых областей, но и не отсутствие достаточной резкости.

enter image description here

enter image description here

Здесь обнаружение края приносит различные края, из мозаики. Из всех изображений первое изображение размыто.

enter image description here

Это изображение имеет низкую размытость.

enter image description here

ответ

4

У меня есть идея, используя ImageMagick. Я принимаю исходное изображение следующим образом:

enter image description here

тогда я положил его в Photoshop и размойте с Motion Blur 5 pixesl и 10 пикселей, сохранив результаты в виде blur5.txt и blur10.txt.

enter image description here enter image description here

Теперь я использую ImageMagick сравнить статистику:

identify -verbose original.jpg > orig.txt 
identify -verbose blur5.jpg > blur5.txt 
identify -verbose blur10.jpg > blur10.txt 

Затем используйте opendiff (на Mac), чтобы сравнить статистику,

opendiff orig.txt blur5.txt 

Хочу отметить, что размытие изображения, тем ниже стандартное отклонение - так что, по-видимому, измеряется относительная смазка песчаники

Затем я использовал детектор Canny Edge, и вы можете видеть, что самое острое изображение получает большинство ребер, а не неожиданно. Таким образом, вы можете считать белые пиксели в обнаруженном изображении Canny Edge как меру вашей резкости.

enter image description here enter image description here enter image description here

Как это:

convert original.jpg -canny 0x1+10%+30% -format %c histogram:info:- 
    875184: ( 0, 0, 0) #000000 gray(0) 
    72576: (255,255,255) #FFFFFF gray(255)   <--- sharp image has high white pixel count 
convert blur5.jpg -canny 0x1+10%+30% -format %c histogram:info:- 
    912322: ( 0, 0, 0) #000000 gray(0) 
    35438: (255,255,255) #FFFFFF gray(255)   <--- slightly blurry has lower white pixel count 
convert blur10.jpg -canny 0x1+10%+30% -format %c histogram:info:- 
    925759: ( 0, 0, 0) #000000 gray(0) 
    22001: (255,255,255) #FFFFFF gray(255)   <--- blurriest has lowest white pixel count 

Если вы хотите одну строку, которая вычисляет количество белых пикселей и перекликается имя файла, вы можете сделать это:

convert original.jpg -canny 0x1+10%+30% -format "%[fx:mean*h*w] %f\n" info: 
72576 original.jpg 

Это позволит вам анализировать все ваши изображения и сортировать их в порядке резкости следующим образом:

find . -name "*.jpg" -exec convert "{}" -canny 0x1+10%+30% -format "%[fx:mean*h*w] %f\n" info: \; | sort 
22001 blur10.jpg 
35438 blur5.jpg 
72576 original.jpg 
+0

Выглядит интересно, попробуем это на реальных данных! –

+0

Я пробовал оба метода теперь на разных моих изображениях, и результаты не очень полезны. Именно из-за природы изображений они все интерьеры, но отличаются от их взглядов. Изображения иногда слишком разные, что отклонение иногда очень велико, но изображение может быть размытым. То же самое для пикселов крайностей количества, в зависимости от изображения это может привести к ложным предположениям. Оба в комбинации не будут работать, если оба могут быть ложными. –

+0

О, это позор :-(Можете ли вы опубликовать некоторые реальные изображения, чтобы мы могли сделать еще несколько репрезентативных экспериментов? –

Смежные вопросы