Actualmente tengo un par de scripts y aplicaciones de Android que hacen lo siguiente para un conjunto de dispositivos miembros (teléfonos inteligentes, PC, cámaras digitales):
- Todas las imágenes tomadas por todos los dispositivos miembros se sincronizan automáticamente con Dropbox.
- para teléfonos inteligentes, esto se hace usando el Dropsync aplicación
- para cámaras digitales, se ejecuta un script tan pronto como la cámara se conecta a través de USB
- Una vez a la semana, todas las imágenes de todos los miembros sincronizados de esta manera se mueven a un directorio diferente en Dropbox, para el almacenamiento a largo plazo.
- Después de la mudanza, se lleva a cabo una deduplicación: este directorio de archivos (llamémoslo
Dropbox/PicsArchive/
) es escaneado, y todos los duplicados son detectados y eliminados. Actualmente, utilizofdupes
Para detectar los duplicados, pero que yo sepa, esto solo detecta exacto Duplica, es decir, archivos que tienen sumas de comprobación idénticas.
El problema
Sin embargo, existe un vínculo no trivial entre todos los miembros.
Por ejemplo, al conectar un tipo específico de cámara digital al USB de la PC que ejecuta estos scripts, las imágenes en su tarjeta de memoria se mueven a Dropbox, y se generan copias reducidas y luego se envían a un subconjunto de los miembros del teléfono inteligente brillante aplicación de Autoremote). Estas copias redimensionadas pueden terminar muy fácilmente en una ubicación en el teléfono inteligente que Dropsync también está sincronizando. Por lo tanto, las imágenes de la cámara, así como estas copias redimensionadas, se sincronizan finalmente en Dropbox/PicsArchive/
.
Otro ejemplo es tomar una foto con la cámara del teléfono inteligente (alta resolución) y compartirla con un contacto de WhatsApp; a menudo, WhatsApp reduce la resolución de esa imagen. Pero quiero ambas ubicaciones sincronizadas (la cámara y El directorio de medios de WhatsApp correspondiente, lo que significa que Dropsync sincronizará dos imágenes (una con alta y otra con menor resolución) con Dropbox, y ambas terminarán finalmente en Dropbox/PicsArchive/
.
Obviamente, deseo mantener solo las imágenes de más alta resolución / calidad. Quizás lo que se necesita aquí sea una mejor estrategia de copia de seguridad, no una herramienta más genérica para limpiar el desorden que se pueda prevenir de alguna manera.
Aquí hay un par de imágenes crudas de la configuración actual. Aquí está el caso de uso original:
Luego implementé la vinculación, para estimular a los usuarios a hacer imágenes de mayor calidad con la cámara digital, y al mismo tiempo puedo enviar fácilmente esas fotos a los usuarios de WhatsApp:
Tenga en cuenta también que el camino Cámara del teléfono → WhatsApp crea un duplicado en el teléfono (tanto el directorio de la cámara del teléfono como el directorio de medios de WhatsApp están sincronizados, lo que por supuesto es necesario para permitir fotos) no destinado a que WhatsApp se sincronice también).
Entonces, ¿cómo puedo deduplicar todas estas fotos?
fuente
Respuestas:
ImagenMagick debería poder hacer algunos hashes para comparar imágenes, pero es más como un conjunto de herramientas que tendría que dedicar un tiempo a aprender a usar & amp; cree su propia respuesta personalizada que haga exactamente lo que quiere, en lugar de "aquí está pegada su respuesta". Pero incluso las "imágenes similares" de Google están lejos de ser perfectas, y la mejor manera de detectar realmente duplicados consiste en mirarlos, ya sea creando imágenes de "diferencia" o las imágenes reales en sí mismas.
Ejemplos de ImageMagick - Comparación de imágenes - MUCHA información & amp; Técnicas, pero mucho implica crear imágenes de "diferencia" para echar un vistazo.
Este clip debería resolver al menos parte del "problema" para imágenes idénticas con diferentes metadatos:
Luego compare los hashes con la herramienta de su elección, y le gustará Linux con el que probablemente esté familiarizado
if [[ "$string1" == "$string2" ]]
...Algunas otras opciones posibles:
Pero, tal vez, una mejor estrategia de copia de seguridad que solo realice copias de seguridad de las imágenes "maestras" de alta resolución, ignorando las miniaturas creadas & amp; las carpetas no maestras serían mucho más rápidas y amp; más fácil.
fuente
bash
—Para que ImageMagick funcione bien para una comparación masiva de una manera realmente práctica.Tres herramientas que he usado en el pasado con excelentes resultados. Todos son para Windows. Ninguno es de código abierto ni para Linux.
Picasa : Simplemente carga sus imágenes, luego entra en las funciones experimentales para encontrar los duplicados
VisiPics : Esta herramienta busca duplicados exactos en su configuración más restrictiva. Puede "aflojar" la configuración para encontrar imágenes similares. Por ejemplo, puede hacer coincidir las imágenes con las que podría estar frunciendo el ceño en una imagen, pero sonriendo en la otra.
Semejanza : Funciona muy bien para el audio, pero también tiene una función para la coincidencia de imágenes. También puede detectar imágenes que no están orientadas correctamente, pero no siempre hace un buen trabajo dejando atrás la imagen de la más alta calidad.
fuente