1

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

Мой вопрос: какой сценарий / программное обеспечение 1 вы знаете, который может распознать 2 дубликата изображения?

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

1 в лучшем случае кроссплатформенный, но Linux будет достаточно

2 Например, по разнице в цвете или что-то

3 ответа3

4

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

скачать visipic http://www.visipics.info/index.php?title=Download

1

Немного магии питона может помочь вам здесь. Убедиться, что PIL установлен:

import os, sys, glob
import ImageChops, Image


def equal(im1, im2):
    return ImageChops.difference(im1, im2).getbbox() is None

dir1 = sys.argv[1]
dir2 = sys.argv[2]

for im1 in glob.glob(os.path.join(dir1, "*.jpg")):
    for im2 in glob.glob(os.path.join(dir2, "*.jpg")):
        if im1!=im2 and equal(Image.open(im1), Image.open(im2)):
            print im1, "==", im2

Предполагая, что скрипт сохраняется как image-diff.py:

$ python image-diff.py dir1 dir2

Он будет искать все изображения JPG в dir1 и dir2 и сравнивать их. Он работает в O(N ^ 2), исключая время, которое занимает ImageChops.difference, поэтому может не подходить для большого набора архивов изображений. Но дает вам идею. Измените и взломайте, как вам угодно.

0

Для побайтовых копий изображений вы можете использовать команду diff в терминале (man diff). Для изображений, которые, вероятно, не идентичны логически, есть программа с именем fdupes которую я использовал в ubuntu.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .