¿Tienes documentos que deseas digitalizar y no sabes cuál es la mejor forma de hacerlo? Aquí te proponemos un sistema sencillo sin grandes pretensiones pero muy práctico.
Anímate, a mí me gusta hacer los tutoriales para la gente que menos conocimientos tiene, y este tutorial no es una excepción.
Propósito del tutorial:
Generalmente, en la digitalización de documentos, tanto las máquinas fotográficas como los escáneres, pueden obtener imágenes que ocupan mucho espacio, y que pueden venir con deficiencias.
Si quisiéramos pasar a blanco y negro todo el documento tendríamos que hacerlo manualmente para marcar un umbral que divida la frontera entre lo que se considera totalmente blanco y lo que se considera totalmente negro. Este tipo de imágenes planas se comprimen muy bien con los formatos GIF o PNG, pero nosotros no vamos a abordar un tratamiento tan radical.
Nosotros vamos a suponer que tenemos un montón de documentos escaneados o fotografiados, que deseamos simplemente mejorar con un criterio generalista de prudencia, para que nos sirva para una amplia variedad de casos.
Por ello asumiremos que un documento podrá incluir partes en color, o quizás tonalidades de grises. No vamos a prejuzgar lo contrario, pero sí vamos a asumir en cambio, que lo que más abundará será el texto en negro sobre fondo blanco por ser lo más habitual.
Lo que buscará el postprocesado será:
- Aumentar la legibilidad del documento mejorando el contraste.
- La afinación del enfoque (no esperes milagros).
- Una optimización del espacio, reduciendo el tamaño del documento y comprimiendo de forma razonable la imagen.
Todo ello sin sacrificar la legibilidad.
La solución ofrecida:
Está pensada para automatizar el postprocesado de una cantidad importante de documentos previamente digitalizados. El postprocesado no hace milagros, pero seguramente te sorprenderá la calidad del resultado si partes de un material no demasiado bueno.
Usaremos para ello el comando convert y el comando mogrify del paquete de utilidades ImageMagick. Se trata de software libre disponible tanto para Windows como para Linux. En ambos casos se trata de utilidades especialmente pensadas para su uso desde el intérprete de comandos.
convert:
El comando ‘convert’ es la base del paquete de utilidades ImageMagick. Permite realizar transformaciones entre distintos formatos de imágenes, así como una amplísima variedad de operaciones.
La sintaxis básica del comando permite dos formas de uso equivalentes:
convert input [-opciones [argumentos]] output
convert [-opcion [argumentos]] input output
Donde:
input: archivo sobre el que se realizará la acción.
output: nombre que deseamos asignar al archivo transformado.
-opciones : determinarán, las acciones a realizar sobre la imagen.
argumentos : determinadas opciones requieren determinados argumentos.
Ya hemos visto en alguna ocasión ejemplos de uso del comando convert. Es imposible de resumir todo lo que este comando puede hacer. Podemos obtener un listado de las posibilidades del comando tecleando:
convert -list
mogrify:
Este comando admite los mismos usos que convert, pero se usa para producir transformaciones masivas de ficheros. ATENCION: Este es un comando que requiere mucha precaución al usarlo porque sobreescribe todos los ficheros originales. Lo sensato es hacer una copia previa y hacer los cambios masivos sobre la copia para prevenir un desastre.
Un ejemplo de postprocesado concreto:
Primero podemos hacer un ensayo sobre una imagen concreta mediante el comando convert.
convert IMG_0032.jpg -rotate -90 -geometry 1200 -normalize -unsharp 0 -quality 83 PRUEBA.jpg
-rotate -90: Gira la imagen 90 grado a la izquierda, para girar 90 grados a la derecha se usará -rotate +90. (Suponemos que el astuto lector tuvo la precaución de colocar todas las páginas escaneadas en la misma posición, y que todas la imágenes necesitarán ser giradas de la misma forma). Por si acaso no fueras demasiado astuto, aclaramos que esta opción no necesita usarse si la imagen ya viene en su posición correcta, pero si te siente más seguro usando -rotate 0 a mí da igual. 😉
-geometry 1200: Obtiene una imagen con una anchura de 1200 pixels (la altura se ajustará automáticamente).
-normalize: Normaliza el contraste haciendo que las partes más claras de la imagen se vuelvan totalmente blancas, que las partes más oscuras se vuelvan totalmente negras, y que los tonos intermedios se ajusten linealmente entre ambos valores. Suele producir un resultado muy aceptable.
-unsharp 0: Afina el resultado mejorando imágenes ligeramente desenfocadas. Esta función es bastante costosa en términos de tiempo de CPU.
-quality 83: La compresión del fichero resultante se hará con calidad 83. (Convendrá controlar el resultado para ver si los artefactos de compresión de jpeg, perjudican la lectura del documento mirando como quedan los textos con letra de menor tamaño. Usa un buen aumento para mirar el resultado y estar seguro de que no estar apurando demasiado la compresión de la imagen).
Procedimiento:
Deberías partir del comando sugerido, y en caso de no ser totalmente satisfactorio busca adaptarlo a sus necesidades. Quizás te interese variar el tamaño de la imagen en función del espacio en disco duro que te puedas permitir.
Repite las pruebas variando los parámetros usados hasta quedar satisfecho y luego haz una copia de todas la imágenes que deben ser procesadas y sitúalas en un directorio aparte. (Nosotros lo denominaremos COPIA_IMG)
Finalmente, para aplicar cambios masivos sobre las imágenes dentro de ese directorio usaríamos mogrify y haríamos lo siguiente:
mogrify -verbose -rotate -90 -geometry 1200 -normalize -unsharp 0 -quality 83 COPIA_IMG/*.jpg
He añadido la opción verbose para que puedas ver el progreso de todo el proceso.
Consejos finales:
En caso de foto:
Las fotos han de hacerse con buena luz, enfocando con precisión la totalidad del documento y encuadrando lo mejor posible. Si no se pone el documento sobre un fondo blanco luego conviene recortar la foto para suprimir los laterales oscuros.
En caso de usar un escáner o una fotografía:
Especialmente si necesitas digitalizar muchos documentos, un escáner te resultará mucho más práctico que hacer fotos. Si aún no tienes escáner y vas a compra alguno, asegúrate de que puede grabar las imágenes en una tajeta externa. Esto es interesante a efectos de prevenir fallos de compatibilidad. También es importante saber cuanto tarda en escanear un folio. Actualmente todos los escáneres tienen una resolución suficiente para escanear documentos de texto.
Ten la precaución de situar todas la páginas en la misma orientación. Meter o sacar una tarjeta de memoria conviene hacerlo siempre con la cámara o con el escáner apagado, para no perder información.
Procesando las imágenes en un PC:
No trabajes directamente sobre la tarjeta. Saca una copia de todo el material al PC, y luego desmonta con seguridad la memoria antes de sacarla. Antes de procesar vuelve a sacar una copia de todo y trabaja sobre ella.
Jose Linares
Muy interesante el tutorial! Como veo que su licencia me lo permite, he creado un post derivado de este en mi blog, puedes visitarlo aquí:
http://jose-linares.com/mejorar-y-comprimir-imagenes-de-documentos-digitalizados-y-pasarlas-a-pdf/
Sigue así 🙂
Antonio Castro
José, me mencionas y me pones un enlace, y aunque este sea un acto de simple reciprocidad, hay bastante gente que olvida hacerlo, así que… ¡Muchas gracias!
Un saludo.
Jose Linares
Eres el autor original del trabajo, que menos que admitirlo no? x)
Gracias a ti!