Вопрос об изображении: Как определить качество изображения?
Я ищу способы определения качества фотографии (JPG). Первое, что пришло мне в голову, - это сравнить размер файла с количеством пикселей, хранящихся в нем. Есть ли другие способы, например, проверить количество шума в JPG? У кого-нибудь есть хорошая ссылка для чтения на эту тему или какой-либо опыт? Кстати, проект, над которым я работаю, написан на C# (.net 3.5), и я использую Aurigma Graphics Mill для обработки изображений.
Заранее спасибо!
5 ответов
Я не совсем понимаю, что вы подразумеваете под "качеством", если вы имеете в виду настройку качества в алгоритме сжатия JPG, то вы можете извлечь ее из тегов EXIF изображения (полагается на устройство захвата, которое их вставляет и никто больше их не перезаписывает) для вашей библиотеки смотрите здесь:
http://www.aurigma.com/Support/DocViewer/30/JPEGFileFormat.htm.aspx
Если вы имеете в виду любой другой вид "качества", то вам нужно придумать лучшее определение качества. Например, передержка может быть проблемой, и в этом случае поиск насыщенных пикселей поможет определить этот конкретный вид качества. Или, в более общем смысле, вы можете посмотреть статистику (среднее значение, стандартное отклонение) гистограммы изображения в 3 цветовых каналах. Изображение может быть не в фокусе, и в этом случае вы можете искать обрезание пространственных частот преобразования Фурье изображения. Если вас беспокоит спекл-шум, то вы можете попробовать применить медианный фильтр к изображению и сравнить его с исходным изображением (больше спекл-шума дало бы большее изменение) - я думаю, здесь немного.
Если под "качеством" вы подразумеваете эстетические свойства композиции и т. Д., То - удачи!
"Качество" изображения не поддается измерению, поскольку оно не соответствует какой-либо конкретной ценности. Если вы берете это как количество пикселей в изображении определенного размера, это не точно. Вы можете говорить о фотографии, снятой в условиях плохого освещения, как о "плохом качестве", даже если она имеет такое же количество пикселей, что и другое изображение, полученное в условиях хорошего освещения. Этот термин часто используется, чтобы говорить об общем эффекте изображения, а не о его технических характеристиках.
Я хотел сделать что-то похожее, но хотел выбрать опцию "Soylent Green" и использовал людей для ранжирования изображений путем сравнения. Смотрите ответы на вопросы здесь.
Я думаю, что вы спрашиваете о том, как определить качество самого процесса сжатия. Это можно сделать, преобразовав JPEG в BMP и сравнив этот BMP с исходным растровым изображением, созданным с помощью JPEG. Вы можете перебирать растровые изображения попиксельно и вычислять межпиксельное "расстояние", суммируя различия между значениями R, G и B каждой пары пикселей (т. Е. Пиксель в оригинале и пиксель в JPEG) и деление на общее количество пикселей. Это даст вам меру средней разницы между оригиналом и JPEG.
Считывание количества пикселей на изображении может подсказать вам размер в " мегапикселях" (# пикселей /1000000), который может быть грубой формой проверки качества программы, но это не скажет вам, правильно ли сфокусирована фотография, предполагая, что она предположительно чтобы быть сфокусированным (подумайте о быстро движущихся объектах, например, поездах), ни о погоде, ни о том, что на картинке есть что-то, на что стоит обратить внимание, это потребует человека или голубя, если вы предпочитаете.