Localizador de imagens duplicado

1

Quando eu faço o download de arquivos, eles geralmente contêm imagens que eu já tenho em outra pasta, mas principalmente com outro nome ou formato de arquivo.

Minha pergunta: Que script / software 1 você sabe, que pode reconhecer 2 imagens duplicadas?

Ele deve permitir que você decida se eles são realmente os mesmos (e possivelmente remover as imagens com qualidade inferior).

1 na melhor das hipóteses cross-platform , mas o Linux seria suficiente

2 e. por sua diferença de cor ou algo

    
por Joschua 02.04.2011 / 18:30

3 respostas

4

para windows, o seu é um pequeno freeware "visipic". ele pode procurar por imagens semelhantes e dar a você a opção de excluir ou mover os arquivos de acordo com a qualidade deles.

faça o download do link

    
por 02.04.2011 / 18:53
1

Um pouco de mágica python pode ajudá-lo aqui. Certificando-se de que o PIL está instalado:

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

Assumindo que o script seja salvo como image-diff.py:

$ python image-diff.py dir1 dir2

Ele procurará todas as imagens JPG em dir1 e dir2 e as comparará. Ele funciona em O (N ^ 2), excluindo o tempo que o ImageChops.difference leva, portanto, pode não ser adequado para um grande conjunto de arquivos de imagem. Mas te dá a ideia. Modifique e corte como quiser.

    
por 02.04.2011 / 19:05
0

Para cópias byte a byte de imagens, você pode usar o comando diff em um terminal (man diff) Para imagens que provavelmente não são idênticas logicamente, existe um programa chamado fdupes que eu usei no ubuntu.

    
por 02.04.2011 / 18:42