Существует ли программный инструмент для обнаружения и удаления производных изображений? - Фотопедия
2 голосов
/ 29 июня 2015

Я делаю восстановление жесткого диска для друга, и на диске полно миниатюр и обрезков от распознавания лиц в дополнение к оригинальным изображениям. Существует ли программный инструмент (и предпочтительно бесплатное программное обеспечение), который может обнаружить производные изображения и помочь вам выполнить пакетное удаление?

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

Ответы [ 2 ]

1 голос
/ 31 августа 2015

Без человека, выполняющего визуальную предварительную сортировку или предварительную сборку похожих файлов для начала, то, о чем вы просите, является невероятно сложным процессом.

Если вы не против какого-либо программирования (даже программирования сценариев, такого как Python), взгляните на инструменты командной строки ImageMagick, особенно ImageMagick compare команда . У него есть опция -subimage-search, чтобы определить, содержится ли одно изображение в другом. Обратите внимание, что для subimage-search субизображение должно быть одинакового размера на большом изображении; они не могут отличаться масштабированием.

Так что subimage-search поможет определить, является ли одна фотография кадрированием другой фотографии, если размер кадрирования также не был изменен.

Теперь, если фотографии имеют одну и ту же сцену, но только что изменили размер, чтобы сравнить их с ImageMagick, вам нужно использовать команду convert, чтобы сделать их одинакового размера, а затем использовать compare команда для определения их относительной разницы (для команды compare существует много различных опций типа метрики .

Почему это требует больших вычислительных ресурсов?

Предположим, у вас есть n фотографий, которые вы хотите проверить для сравнения. Таким образом, первое фото сравнивается с n -1 оставшимися фотографиями, второе фото сравнивается с n -2 оставшимися фотографиями (помимо самого себя и первого фото, которое уже сравнивалось) до n -1-й фотографии по сравнению с n -ой фотографией. Это частичная сумма первых n натуральных чисел, которая получается из (n & sup2; - n) / 2 сравнений.

Существуют алгоритмы обработки изображений, которые могут выполнять как масштабирование, так и поиск субизображений в одном и том же процессе. Эти алгоритмы обычно используют методы сжатия в частотной области или вейвлет-области для идентификации похожих областей на изображениях. Но эти алгоритмы также требуют значительных вычислительных ресурсов и примерно пропорциональны по сложности (времени) квадрату размера сравниваемых файлов (т. Е. & Alpha; k & sup2; секунд / КиБ, где k в килобайтах, а & alpha; - некоторая константа пропорциональности для вашего алгоритма и компьютерной системы).

Но так как есть Ω ( n & sup2;) (нотация информатики, называемая «нотация Big-O», что означает «порядка», или «примерно»), сравнение каждого из них является квадратичным время, у вас есть алгоритм, который, с точки зрения компьютера, имеет сложность "Ω (n & sup2;) & times; Ω (s & sup2;)". Это означает, что это может занять много времени, и очень чувствительно к увеличению количества файлов для сравнения и среднего размера файла.

0 голосов
/ 02 июля 2015

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

Это, конечно, предполагает, что вы не хотите сохранять файлы меньшего размера.

Добро пожаловать на сайт Фотопедия, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...