2014-02-15 5 views
2

У меня есть много разных версий одной фотографии в файлах JPEG. Мне нужен инструмент командной строки или библиотека, работающая в Linux, которая выбирает версию самого высокого качества из доступных версий. Взгляд (и масштабирование) в файлах один за другим не является вариантом, потому что мне нужно повторить это для нескольких тысяч наборов фотографий. Я уже знаю, какие фотографии являются версиями друг друга.Как выбрать высококачественную версию фотографии?

Простейшим приближенным решением является выбор файла изображения с наибольшей шириной и высотой. Это не работает, когда есть изображение A и изображение B; образ B был создан путем масштабирования изображения A вниз на коэффициент 2, а затем масштабирования результата в 3 раза. В этом случае изображение A имеет больше информации и имеет более высокое качество, но изображение B имеет большие размеры. Мне нужно решение, которое выбирает изображение A в этом случае и подобные случаи.

+3

Жесткая проблема. [Это] (https://ece.uwaterloo.ca/~z70wang/publications/icip02.pdf) может служить отправной точкой. –

+0

Разве это не отражается на размерах файлов? Я бы предположил, что масштабированное изображение в формате JPEG займет меньше места, чем изображение с тем же первоначальным размером. Может быть, вы можете разработать некоторую эвристику на основе размера файла, степени сжатия и ширины/высоты в качестве функций? – qqilihq

+1

Я бы, вероятно, начинал с https://www.google.com/search?q=measure+image+entropy – bobah

ответ

1

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

  • Размер файла: Как указано в @qqilihq, размер файла jpeg будет примерно соответствовать качеству фотографии. В приведенном ниже примере, когда файл уменьшен, а затем возвращается в полный размер, вы ожидаете, что исходная (не масштабированная) версия будет иметь больший размер файла. Детали, потерянные при масштабировании jpeg, больше не будут занимать место в файле. По крайней мере, легко проверить.
  • Возможно, вам удастся извлечь полезную информацию из метаданных jpeg. Это, вероятно, сильно изменится с помощью программ, используемых для редактирования jpegs и спецификации jpeg. Вот два ресурса: Exif и один от Oracle.
+0

Спасибо за советы. Да, я могу использовать комбинацию размера файла, ширины и высоты в качестве сигнала, но необходимо провести дополнительные исследования, как объединить их с надежным счетом. Я забыл упомянуть, что входные файлы не имеют метаданных. – pts

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