Скрипт оценки резкости фотографий (желательно C++)
Требуется программинг по обработке изображений. Желательно на C++ (так как нагрузка будет большая), но с тем что бы заработал на моём сервере. Если будет чего-то не хватать для работы - поставим.
Смысл такой: тестирование фототехники.
Есть картинка - оригинал (мира), есть куча её фотографий. Нужно построить карту резкости каждой фотки (более и менее резкие места) и вывести какой-то общий балл по фото и по группе фотографий. Нужно каким-то образом
получить циферки, потом из них сделаем графики наподобие таких:
http://slrgear.com/reviews/zproducts/olympus12-50f35-63m/tloader.htm
Cделать графики - пока не ваша проблема. Главное продумать и реализовать рабочий алгоритм
как эту "резкость" вытащить из исходных данных.
Простейший алгоритм, как я предполагаю:
1. Делим на области
2. В каждой области берем каждый пиксель и считаем отклонения по цвету с соседними;
3. Максимум отклонений - максимальная резкость. Сравниваем с оригиналом.
Насколько рабочий - не знаю. Может быть есть какой-то типовой алгоритм. Кое-какие варианты есть в свободном доступе: http://www.aiportal.ru/articles/other/evaluation-of-image-quality.html
Картинки миры и несколько тестовых прилагаются. Важный момент, не должно быть сильного влияния от:
- цветовой гаммы снимков
- затемнения снимка по углам (на одном снимке есть)
- разрешения снимков (если будем тестировать разные фотики - будет разное разрешение фотографий)
- геометрических искажений.
Эти параметры тоже нужно будет мерить, но это уже отдельная задача.
Если мира не подходит для задачи - можно любую другую сделать и нафоткать, скажем полоски какие или текст. Главное адекватность результатов работы алгоритма.