¿Cómo recortar automáticamente las imágenes escaneadas con imagemagick o graphicsmagick?

10

Tengo algunas imágenes escaneadas en formato * .jpg. Se escanean utilizando un escáner A4, en escala de grises o en color. Las páginas escaneadas tienen dimensiones muy diferentes: algunas A5, otras A6, algunas tarjetas de visita, etc. La cubierta del escáner es blanca.

Quiero recortar todos los bordes blancos con imagemagick o graphicsmagick (esas herramientas, porque quiero procesarlo por lotes). Entiendo que el borde está escaneado, por lo que no es perfectamente blanco y que a veces puede recortar demasiado o menos la imagen. Sin embargo, al usar el parámetro de ajuste con fuzz siempre tengo una imagen demasiado grande. Por ejemplo, usando la imagen de la tarjeta de negocios a continuación:

gm.exe convert -crop -fuzz 50% 01-pixelated.jpg 01-pixelated-gm.jpg

Produce una imagen que aún no está cortada desde la derecha y la parte inferior. El resultado es el mismo, independientemente del número que coloque en el parámetro -fuzz.

¿Podría por favor probarlo y avisar a la línea de comando que hará el trabajo?

enter image description here

Arek
fuente
¿Desea recortar directamente a los bordes del texto / contenido, oa los bordes de la hoja de papel, sea cual sea el tamaño (A4, A5, A6)? En su ejemplo, el límite inferior de la tarjeta no se ve en absoluto, no sé cómo espera detectarlo.
willus
Quiero que se recorte en los bordes del contenido.
Arek
1
askubuntu.com/questions/97695/… || stackoverflow.com/questions/14098965/…
Ciro Santilli 新疆改造中心 六四事件 法轮功

Respuestas:

8

En ImageMagick prueba este comando:

convert input.jpg -fuzz 80% -trim +repage output.jpg

Lo probé con ImageMagick 6.4.4 Q16 y, a partir de la imagen que vinculaste, obtuve esta imagen de salida:

output

Andrea
fuente
tan obvio, no coinciden -trim with -crop. ¡Gracias!
Arek