Recorte automático e inteligente de 1000 imágenes

ingrese la descripción de la imagen aquíTengo alrededor de 1000 imágenes escaneadas/fotografiadas, cada una con diferentes formatos pero todas con forma rectangular/cuadrada, que deben recortarse para eliminar el fondo y el espacio en blanco alrededor de las imágenes. El recorte debe realizarse de manera inteligente, por ejemplo, identificando el fondo (mesa de madera/gama de colores marrones) y el espacio en blanco alrededor de cada foto, preferiblemente girada a la posición vertical/horizontal (máximo unos pocos grados) y recortada a un formato rectangular. .

Esperaría que, en estos días de inteligencia artificial con software que reconoce rostros, haya una aplicación de software para hacer eso, pero después de varias horas de búsqueda no he podido encontrar ninguna. He leído varios artículos en este foro y en otros lugares de la web y he probado varias opciones, pero ninguna funciona correctamente:

  • La función automática de recorte y enderezamiento de Photoshop (en acción por lotes) corrige menos del 10% de las imágenes y necesita intervención manual continuamente. También crea múltiples imágenes de artefactos recortadas con pequeñas áreas recortadas y no puede determinar cuál guardar;
  • El recorte de GIMP (como lo describe Francois Malan) solo funciona para separar imágenes de una página escaneada, no para recortar muchas imágenes individuales;
  • Irfanview no puede encontrar inteligentemente los bordes, por lo que es inútil;
  • ImageMagic (y muchas otras aplicaciones) que he probado tampoco tienen esta capacidad automática.

Todos estos programas, incluido Photoshop, son excelentes si desea recortar usando posiciones y/o formatos fijos, pero ninguno de ellos parece tener la inteligencia para encontrar los bordes blancos de una imagen y usarlos para recortar. Recortar 1.000 imágenes a mano (con soporte de Photoshop) me llevará probablemente unas 30 horas de trabajo (2 minutos cada una, incluida la corrección).

¿Cualquier sugerencia? Los temas clave en stackexchange tienen varios años, por lo que tal vez haya una nueva aplicación que pueda manejar esto sin intervención manual. Dado el potencial ahorro de tiempo, no me importa pagar por un software que hace un trabajo adecuado. En el peor de los casos, volveré a fotografiar todas las imágenes dedicando entre 10 y 15 segundos adicionales por imagen para asegurarme de que estén alineadas horizontalmente y hacer el recorte mientras tomo la foto (o enviarlas a alguien en un país de bajos salarios para que haga esto por a mí :-)). Salud

Google hace lo que usted describe en su aplicación PhotoScan, pero no ha lanzado nada que funcione con archivos de imágenes preexistentes.
La mitad del problema es que la foto no es cuadrada ni plana en la toma. Necesitará algo que pueda 'recortar la perspectiva inteligente' o que se le enseñe a, en efecto, escanear por debajo para cuadrarlos.
Esto ejemplifica la importancia no solo de la plataforma de la cámara al usar una cámara como escáner, sino también de la necesidad de usar un caballete para que las imágenes sean planas y en el mismo lugar exacto.
El enfoque de PhotoScan es genial. La aplicación sería extremadamente útil si tuviera una alta tasa de píxeles, corrección adecuada, baja distorsión y nitidez y contraste adecuados. Desafortunadamente, la aplicación actual no tiene ninguno de estos y solo es buena para el uso de baja resolución en las redes sociales. Dudo que Google esté interesado en expandir esta aplicación inteligente para un uso más profesional...
Punto tomado para crear una configuración adecuada. Un poco de tiempo adicional durante el escaneo inicial ahorra una tonelada de trabajo después del procesamiento. Afortunadamente tengo la opción de rehacer estas imágenes y enderezarlas/recortarlas inmediatamente. En mi ingenuidad asumí que cualquier software de imagen decente, y seguro que Photoshop, tendría una herramienta para arreglarlo. Tenía demasiadas esperanzas en las capacidades de la IA...

Respuestas (3)

Solución intermedia con Gimp, que recorta y endereza las imágenes, asumiendo que todas sus imágenes están numeradas en algún directorio ( , , IMG_2027.JPGsiempre IMG_2028.JPGque haya un sufijo de número identificable, incluso puede tener números faltantes).

  1. instale el ofn-file-nextscript y utilícelo Edit>Keyboard shortcutspara asignarlo a una tecla.
  2. Archivo>Abrir la primera imagen
  3. Inicie la herramienta Perspectiva y configúrela en Direction: CorrectiveyClipping: Clip
  4. Haga clic en la imagen y arrastre los cuatro controladores de esquina a las cuatro esquinas de su imagen
  5. Pulsa [Enter] (la imagen se recorta/endereza)
  6. Toque el File>Nextatajo: la imagen se guarda y se abre la siguiente imagen en secuencia
  7. Repita desde el paso 4

Después de algunas imágenes, puede ser tan rápido como 10-15 segundos/imagen...

Para las fotos rectas, puede usar la herramienta de recorte. Si conoce la relación de aspecto real (¿3:2?), las imágenes se pueden volver a escalar por lotes mediante una secuencia de comandos en un paso siguiente, o puede rellenar las imágenes de origen con la relación de aspecto requerida (también mediante secuencia de comandos) antes de recortar/enderezar (calidad ligeramente mejor).
Tienes razón. La solución es, de hecho, hacer un recorte básico primero seguido de la herramienta Perspectiva, lo que agrega tiempo. Debido a mi falta de una configuración estándar, todas las imágenes son únicas. El aprendizaje clave es a) aparentemente no hay una herramienta inteligente para hacer eso yb) una configuración adecuada es clave.

Creé un sitio web gratuito ( https://www.autocropper.io/ ) que recorta automáticamente las fotos individuales de escaneos de varias fotos. Funciona a través de Python OpenCV y busca específicamente formas rectangulares rodeadas de bordes blancos. Aquí hay un escaneo de ejemplo con 4 fotos:

ingrese la descripción de la imagen aquí

Probé tu imagen de ejemplo y detectó la imagen:

autoCropper.io con tu ejemplo img

Puede cargar 10 escaneos a la vez. Si tiene más imágenes de ejemplo con diferentes fondos, siéntase libre de compartirlas y puedo entender mejor su caso de uso. Originalmente se creó para imágenes escaneadas digitales en lugar de imágenes reales.

No se requiere descarga, es una aplicación en el navegador. Escribí extensamente sobre cómo funciona mi algoritmo de detección de imágenes usando Python OpenCV si desea ejecutarlo localmente. Ver aquí https://www.autocropper.io/technical-overview

Gracias por revelar que creaste la herramienta. ¡Muy apreciado! Y bienvenido a Photo-SE. =)

Probé su escaneo usando una aplicación para Mac, SnipTag . Esta aplicación tiene 2 motores de recorte: ambos recortan automáticamente la imagen correctamente, pero no la giran a la posición vertical. SnipTag (y su primo, Snip ) pueden recortar escaneos por lotes, es decir, puede enviar docenas de escaneos a la vez. Además, si captura varias fotos por escaneo, se recortan y guardan individualmente. Ayuda si escanea de acuerdo con las pautas incluidas en la aplicación. Escaneo recortado con los dos motores, abajo a la derechaAmbas aplicaciones son gratuitas para probar [Divulgación: Hago servicio al cliente en AIL, desarrollador de estas aplicaciones.]

Sí, hago servicio al cliente. Y lo siento, en mi entusiasmo por responder la pregunta relevante para esta aplicación, me salté el protocolo de divulgación. También me castigaron internamente por esto. He editado la respuesta anterior.
Gracias por la actualización y la divulgación. ¡Muy apreciado! =)