Identificando arquivos de imagens duplicadas

Há alguns meses comentei sobre o comando “fdupes” que localiza arquivos duplicados. Ele atende muito bem ao seu propósito desde que  estejamos procurando arquivos que sejam fielmente os mesmos, ou seja, em uma comparação bit-a-bit o conteúdo deve ser o mesmo.

Mas você quiser comparar imagens, onde as cópias podem ter sido rotacionadas, ter sido redimensionada, ter sido aplicado um efeito de cores etc?

Para isso existe uma outra ferramenta chamada “findimagedupe” que o ajudará a encontrar arquivos de imagens idênticas ou com pequenas variações. Como é de se esperar a sua instalação é simples para os felizes usuários de Debian, Ubuntu e demais da família:

# apt install findimagedupes

Opções de trabalho

O comando possui poucas opções de ajustes o que torna seu uso bem simples. As opções básicas são:

  • -R – Modo recursivo para analisar os subdiretórios dos caminhos especificados;
  • -t – Determina o percentual de similaridade que você deseja considerar na busca;
  • -p – Caminho para algum programa de sua preferência que será chamado para cada conjunto de duplicatas;
  • -s – Ao termino do processamento cria um shell-script com a lista de arquivos duplicados sendo enviada para algumas funções genéricas que você pode definir o que fazer.

Exemplo prático

Para encontrar as imagens duplicadas na pasta “Imagens” do meu home, por exemplo, bastaria executar o comando desta forma:

$ findimagedupes -R -t100% /home/welington/Imagens

Isso fará uma análise em todos os arquivos de imagens dentro de /home/welington/Imagens e em seus subdiretórios (-R), que combinem 100% umas com as outras (-t100%). A listagem será exibida na tela contendo cada grupo em uma linha que você poderá redirecionar para um arquivo e depois dar o tratamento desejado.

O ideal é redirecionar esta lista para um arquivo que você depois trataria de alguma forma manual ou automática. Veja que por si só o comando findimagedupes não modifica nada em seu disco ele apenas faz uma análise e retorna o resultado para você avaliar e decidir o que fazer o que o torna bastante seguro de operar.

Invocando um programa para cada conjunto de duplicatas

Uma forma legal para tratar imediatamente as imagens duplicadas é você exibi-las em um visualizador (preferencialmente que seja de rápido carregamento) e de lá você tomar as devidas ações, como no exemplo abaixo em que invoco o comando “eog” que é o visualizador básico de imagens no Gnome e possui funções essenciais e facilmente acessíveis para esta tarefa (rotacionar, renomear, deletar etc).

$ findimagedupes -R -t100% -p /usr/bin/eog /home/welington/Imagens

Ao término das comparações o eog será exibido com as duas (ou mais) imagens consideradas similares e então você poderá escolher o que fazer com elas. Obviamente você poderia substituir o eog por qualquer programa que quiser, inclusive um programa personalizado que exclua os arquivos indesejados.

Mais do que invocar um programa de visualização

Uma opção mais esperta, mas que requer um pouco mais de cuidado e conhecimento é a opção “-s”. Ao termino do processamento ela cria um arquivo shellscript com as funções genéricas VIEW e END que em princípio não fazem nada, mas que recebem como parâmetro os conjuntos de imagens duplicadas.

A função VIEW será invocada uma vez para cada conjunto de duplicatas, assim, você pode codifica-la para que ela exclua somente as imagens que estão em determinada pasta, ou a mais antiga, a mais recente, ou qualquer outro critério que você desejar, ou mesmo não remova nada apenas mova as imagens para um outro caminho etc.

Como eu disse, esta é uma opção que requer mais conhecimento, mas se você souber lidar com programação, ainda que o básico de shellscript você poderá em poucas horas de trabalho acabar com duplicidades desnecessária em centenas de gigabyte de imagens que de outra maneira levaria meses.

Seja Paciente

Esta a dica primordial que eu deixo aqui para quem precisar organizar seu acervo fotográfico. “Seja paciente”. Faça as coisas com calma e várias vezes.

Primeiro trate as imagens que são idênticas bit-a-bit com o comando fdupes já mencionado em outro artigo, depois use o findimagedupes para tratar todas as imagens com 100% de similaridade – pois nem sempre os 100% de similaridade significa idêntico bit-a-bit, em seguida repita o procedimento com a similaridade em 99%, depois 98%, 97% e assim em diante até que as sugestões se tornem extremamente absurdas (no uso que tenho feito isso aconteceu por volta dos 85% a 90%, dependendo do conjunto de imagens).

Tenha um backup antes de começar

Pode parecer ironia do destino você ter uma backup que duplica tudo o que já está duplicado, mas você pode descobrir que apagou o conjunto de imagens errado depois que for tarde demais.

Para não chorar o leite derramado, estipule uma pasta que será a pasta a ser organizada e outra que será o seu backup. Minha sugestão é que você faça backups com uma ferramenta como o Borgbackup, que já recomendei aqui, mas se você não se sentir confortável com ela faça cópias periódicas após cada conjunto de exclusões, e ao término de tudo, se tiver tudo perfeito, exclua todas esta cópias, claro.

Graças a esta ferramenta, só no meu acervo pessoal eu me livrei de algumas centenas de gigabytes de imagens duplicadas, triplicadas e quadruplicadas em pouco tempo. Antes dela eu já tinha testado várias alternativas e embora tivesse levado meses excluindo arquivos e não tinha chegado a um resultado satisfatório.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.