2012-07-04 2 views
2

Существуют ли известные алгоритмы, которые могут автоматически определять ухудшение изображения, не глядя на изображение?Обнаружение артефактов JPEG

я думаю об очевидных (видимый) изображения артефактов с потерями повторного кодирования, как цвет дисторсия, края, шум и т.д. blockness
Например, изображения, кодированные из оригинального источника с качеством JPEG 80 отлично.

Надеюсь, это подходящее место, чтобы спросить, но если модераторы подумают, что я должен был спросить у DSP stackexange или аналогичного, пожалуйста, передумайте.

+2

Что значит «не глядя на изображение»? Можно ли прочитать файл? –

+0

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

+0

Вы когда-нибудь находили решение? – OneSolitaryNoob

ответ

1

Вам необходимо оценить методы поиска артефактов, которые вы определяете. После того, как вы охарактеризовываете, вам нужно запрограммировать каждый метод, чтобы найти эти артефакты. Эти методы, вероятно, лучше всего использовать на разностном изображении - исходном (или промежуточном) минус закодированном файле. Вероятно, вам придется анализировать каждый цветной канал отдельно. Простейшим был бы порог - есть ли какие-то части закодированного изображения с некоторым порогом? Для блочности и краевого шума я предполагаю, что вы, вероятно, воспользуетесь каким-то преобразованием Хафа, чтобы распознавать фигуры/линии в разностном изображении и, возможно, вейвлет-преобразование или что-то подобное, которое может быть настроено на определенные частотные паттерны, чтобы вызывать звон вокруг краев ,

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

Для известных программируемых методов см. Scikits-image python (что вы знаете о своем сообщении в списке рассылки) или, возможно, OpenCV, который имеет привязки Python. Я не знаком с возможностями Matlab, но это, вероятно, также будет работать.

+0

Да Я ищу указатели на известные программируемые методы для обнаружения некоторых из упомянутых артефактов. Исходное изображение недоступно, иначе я, вероятно, сделаю что-то вроде описанного. – vlad

+0

Только что я получил переигровку со Стефана, которую я цитирую для справки: «Самое легкое может загрузить изображение, а затем сохранить его снова как JPG. размер изображения остается тем же, у вас, вероятно, был JPG для начала ». – vlad

+0

Итак, похоже, что это один из тех вопросов, которые легко спросить, и решение слишком сложно, если это возможно. Я также использовал OpenCV в одном случае (SURF-детекторы в книге), но я не знаю о функции, которая предоставит некоторую информацию об ухудшении качества изображения. Спасибо за ваш вклад – vlad

2

Существует библиотека под названием CMFD (Copy-Move Forgery Detection), которая обнаруживает артефакты и другие алгоритмы для обнаружения подделок изображений. Он свободно доступен от http://www5.cs.fau.de/research/software/copy-move-forgery-detection/.

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