Как сравнить качество двух изображений?

Я применил два разных алгоритма улучшения изображения к конкретному изображению и получил два результирующих изображения. Теперь я хочу сравнить качество этих двух изображений, чтобы найти эффективность этих двух алгоритмов и найти более подходящий на основе сравнения Векторы признаков этих двух изображений. Так какие Подходящие векторы функций я должен сравнить в этом случае?

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

Мне нужна математическая поддержка для проверки эффективности какого-либо одного алгоритма, основанного на оценке изображений, например, с использованием Constrast и Variance. Так есть ли еще подходы сделать это?

3 ответа

Решение

Слейтон прав, вам нужна метрика и способ ее измерения, что само по себе может быть академическим проектом. Тем не менее, я мог бы сразу подумать об одном подходе, не уверенный, имеет ли он смысл для вашей конкретной задачи:


Метрика: сумма абс ( разность цветов) по всем пикселям. Чем ниже, тем больше похожи изображения.

Метод: Для каждого пикселя получите абсолютную разницу цветов (или, если быть точным, расстояние) в пространстве LAB между исходным и обработанным изображением и суммируйте их. Не портите свой день, пытаясь понять полную статью в Википедии и кодируя это, это было сделано раньше. Попробуйте повторно использовать методы getDistanceLabFrom(Color color) или же getDistanceRgbFrom(Color color) из этой реализации PHP.
Это сработало для меня, как шарм, когда мне нужен был способ подбора цвета пикселей на картинке jpg - что в принципе и является тем же принципом.


Теория, лежащая в основе этого (насколько мне известно): он выполняет математическую абстракцию rgb или (лучше) лабораторного цветового пространства как трехмерной комнаты, а затем вычисляет расстояние, поэтому он работает хорошо - и вряд ли работал для меня, когда я смотрю на цветовой код с одной точки зрения.

Лучшим подходом было бы сделать некоторое соотношение шум / сигнал путем сравнения спектров изображения?

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

Затем ваш алгоритм должен максимально удалить из добавленного шума. Результаты легко сравнить с соотношением сигнал / шум (см. Википедию).

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

Другой, довольно распространенный способ сделать это - тот, который рекомендует Slayton: пусть все ваши коллеги оценят результаты вашего алгоритма, а затем усреднят их показы.

Если у вас есть только 2 изображения и нет эталонного изображения (самого высокого качества), вы можете увидеть мое грубое решение / сценарий bash: https://photo.stackexchange.com/questions/75995/how-do-i-compare-two-similar-images-sharpness/117823

Он получает 2 имени файла и выводит имя файла более высокого качества. Предполагается, что содержимое изображений идентично (то же исходное изображение). Однако его можно обмануть.

Другие вопросы по тегам