2012-04-20 10 views
7

A menudo escaneo documentos escritos a mano para enviarlos a colegas, y necesito hacer correcciones al archivo digital una vez que se escanea. (Por ejemplo, yo cambio errores que cometí en el documento original a blanco.)¿Hay alguna forma de crear un script que corrija automáticamente los documentos escaneados?

Estoy pensando en una secuencia de comandos que puede hacer lo siguiente:

Tome una imagen de barrido de color (por ejemplo un tiff) como entrada, y realice correcciones simples automáticamente basadas en correcciones de color en la imagen.

Por ejemplo, tomemos el caso más simple: escribo solo negro sobre blanco. Hay un área donde cometí errores, así que dibujé un círculo rojo cerrado (con un lápiz en la hoja de papel real) alrededor de esa área. Luego escaneo la imagen (o generalmente muchos de ellos). Ahora me gustaría que el script borre cada una de estas áreas en todas las imágenes para que mis errores desaparezcan en la imagen resultante.

Cualquier idea sobre cómo realizar esto en un entorno Linux, p. con Image Magick?


Parece que Gimp con script-fu podría ser el camino a seguir, debería ser lo suficientemente potente. ¿Puede alguien darme una pista señalando que el ejemplo anterior se vería en script-fu?

+0

También es útil para mí: qué software de imagen de pixel de Linux es altamente programable y admite operaciones complejas como máscaras de selección de color, etc. – highsciguy

+1

Ya está marcando manualmente lo que desea cambiar, ¿ha pensado en cosas no técnicas como cinta de desvanecimiento (http://www.amazon.com/Wite-Out-Correction-1-Line-Dispenser-BICWOTAPP11/dp/B003V8Q7HS) o usando etiquetas o pegatinas en blanco no reflectantes para ocultar los errores. –

+0

Soy una persona complicada y esta solución es demasiado simple para mí;) No, en serio: soy consciente de esta solución pero tengo algunas ideas más en mi mente que no pueden realizarse de esta manera si quiero producir un buen texto escrito a mano. P.ej. Me gustaría poder resaltar el texto de la misma manera cambiando su color. O dibujar un recuadro rectangular alrededor del texto. Estas cosas toman mucho tiempo si quiero hacerlo a mano. – highsciguy

Respuesta

0

Sugeriría mirar un escáner scansnap (quizás el scansnap 3100). Hay varias cosas que el software incluido puede hacer que pueden ser útiles.

Puede encontrar que cualquier software/script que encuentre no funcionará de la manera que le gustaría. Parece que muchas de estas ediciones son cosas que deben ser vistas con un ojo humano. Tal vez podrías contratar a un asistente personal para que haga estas correcciones por ti. :)

2

Estoy pensando en una solución basada en ImageMagick. Necesitaríamos los siguientes pasos:

  1. Encuentra el color utilizado para dibujar en el documento escaneado (por ahora en adelante, llamado color de destino);
  2. Encuentra sus coordenadas x y y en la imagen;
  3. Pase esta posición como una semilla para el algoritmo Flood Fill.

Podríamos utilizar la siguiente secuencia de comandos basado en funciones de ImageMagick:

  1. de salida todos los colores únicos en la imagen. Esto se usará para averiguar cuáles son los componentes RGB del color de destino (command source).

    convert <image> -unique-colors -depth 8 txt:- > output.txt 
    
  2. salida las coordenadas de cada color en un archivo de texto:

    convert <image> txt:- > coord.txt 
    
  3. Encuentra los x y y coordenadas del color de referencia (command source).Supongamos que el color de destino obtenida en la etapa 1 era de color rojo:

    grep red coord.txt 
    
  4. Finalmente, utilice x y y como semilla para floodfill para reemplazar la región círculo por su color deseado (command source). En este caso, he utilizado white para borrar la región:

    convert <image> -fill white -fuzz 13% \ 
         -draw 'color <x>,<y> floodfill' <image_floodfill_output> 
    

El parámetro -fuzz evitará que los colores que eran originalmente red y se corrompió debido al ruido también es reemplazado.

Este tutorial proporciona más información acerca de la función floodfill, por ejemplo, cómo reemplazar los colores de los bordes.

+0

+1 para esta sugerencia. Sería aún mejor si lo elaboraste un poco más ... :-) –

+0

@KurtPfeifle ¡gracias! :-) ¿Qué puntos necesita mejorar? ¿Tal vez un ejemplo de uso y una explicación más detallada sobre los comandos utilizados? – Yamaneko

+0

Exactamente :-) Y puede incluso algunas imágenes y archivos de texto (extraer) que demuestren los efectos de los comandos que está utilizando ... –

Cuestiones relacionadas