stringtranslate.com

Seguimiento de imágenes

En gráficos de computadora , el trazado de imágenes , la conversión de raster a vector o vectorización raster es la conversión de gráficos rasterizados en gráficos vectoriales .

Fondo

Esta imagen ilustra la diferencia entre imágenes de mapa de bits e imágenes vectoriales. La imagen de mapa de bits se compone de un conjunto fijo de píxeles, mientras que la imagen vectorial se compone de un conjunto fijo de formas. En la imagen, al escalar el mapa de bits se revelan los píxeles, mientras que al escalar la imagen vectorial se conservan las formas.

Una imagen no tiene ninguna estructura: es sólo una colección de marcas en el papel, granos en la película o píxeles en un mapa de bits . Si bien una imagen de este tipo es útil, tiene algunos límites. Si la imagen se amplía lo suficiente, aparecen sus artefactos. Los puntos de semitono, los granos de la película y los píxeles se vuelven evidentes. Las imágenes de bordes afilados se vuelven borrosas o irregulares. Véase, por ejemplo, pixelación . Idealmente, una imagen vectorial no tiene el mismo problema. Los bordes y las áreas rellenas se representan como curvas matemáticas o gradientes, y se pueden ampliar arbitrariamente (aunque, por supuesto, la imagen final también debe rasterizarse para ser renderizada, y su calidad depende de la calidad del algoritmo de rasterización para las entradas dadas).

La tarea de la vectorización es convertir una imagen bidimensional en una representación vectorial bidimensional de la imagen. No se trata de examinar la imagen e intentar reconocer o extraer un modelo tridimensional que pueda representarse; es decir, no es un sistema de visión . Para la mayoría de las aplicaciones, la vectorización tampoco implica el reconocimiento óptico de caracteres ; los caracteres se tratan como líneas, curvas u objetos rellenos sin atribuirles ningún significado. En la vectorización, se conserva la forma del carácter, por lo que se conservan los adornos artísticos.

La vectorización es la operación inversa a la rasterización , como la integración a la diferenciación . Y, al igual que con estas otras dos operaciones, mientras que la rasterización es bastante sencilla y algorítmica, la vectorización implica la reconstrucción de la información perdida y, por lo tanto, requiere métodos heurísticos .

Las imágenes sintéticas, como mapas, caricaturas, logotipos, imágenes prediseñadas y dibujos técnicos, son aptas para la vectorización. Es posible que esas imágenes se hayan creado originalmente como imágenes vectoriales porque se basan en formas geométricas o están dibujadas con curvas simples.

Las fotografías de tonos continuos (como los retratos en vivo) no son buenas candidatas para la vectorización.

La entrada para la vectorización es una imagen, pero una imagen puede presentarse en muchas formas, como una fotografía, un dibujo en papel o uno de varios formatos de archivo rasterizados . Los programas que realizan la conversión de rasterizados a vectoriales pueden aceptar formatos de mapa de bits como TIFF , BMP y PNG .

El resultado es un archivo con formato vectorial . Los formatos vectoriales más comunes son SVG , DXF , EPS , EMF y AI .

La vectorización se puede utilizar para actualizar imágenes o recuperar trabajos. Los ordenadores personales suelen venir con un sencillo programa de dibujo que produce un archivo de salida de mapa de bits. Estos programas permiten a los usuarios realizar ilustraciones sencillas añadiendo texto, dibujando contornos y rellenando los contornos con un color específico. Sólo los resultados de estas operaciones (los píxeles) se guardan en el mapa de bits resultante; las operaciones de dibujo y relleno se descartan. La vectorización se puede utilizar para recuperar parte de la información que se perdió.

La vectorización también se utiliza para recuperar información que originalmente estaba en formato vectorial pero que se perdió o ya no está disponible. Es posible que una empresa haya encargado un logotipo a una firma de artes gráficas. Aunque la firma gráfica utilizó un formato vectorial, es posible que la empresa cliente no haya recibido una copia de ese formato. La empresa puede entonces adquirir un formato vectorial escaneando y vectorizando una copia en papel del logotipo.

Proceso

Archivo PNG original (16 kB)
Convertido a mano en SVG (47 kB)

La vectorización comienza con una imagen.

Manual

La imagen se puede vectorizar manualmente. Una persona podría mirar la imagen, hacer algunas mediciones y luego escribir el archivo de salida a mano. Ese fue el caso de la vectorización de una ilustración técnica sobre neutrinos. La ilustración tiene algunas formas geométricas y mucho texto; fue relativamente fácil convertir las formas y el formato vectorial SVG permite ingresar el texto (incluso los subíndices y superíndices) fácilmente.

La imagen original no tenía curvas (excepto el texto), por lo que la conversión es sencilla. Las curvas hacen que la conversión sea más complicada. La vectorización manual de formas complicadas se puede facilitar mediante la función de trazado integrada en algunos programas de edición de gráficos vectoriales .

Si la imagen aún no está en formato legible por máquina, entonces deberá escanearse en un formato de archivo utilizable.

Una vez que se crea un mapa de bits legible por máquina, la imagen se puede importar a un programa de edición de gráficos (como Adobe Illustrator , CorelDRAW o Inkscape ). Luego, una persona puede trazar manualmente los elementos de la imagen utilizando las funciones de edición del programa. Las curvas de la imagen original se pueden aproximar con líneas, arcos y curvas de Bézier. Un programa de ilustración permite ajustar los nudos spline para que se ajusten mejor. La vectorización manual es posible, pero puede ser tediosa.

Aunque los programas de dibujo gráfico existen desde hace mucho tiempo, los artistas pueden encontrar incómodas las herramientas de dibujo a mano alzada incluso cuando se utiliza una tableta gráfica. En lugar de utilizar un programa, Pepper recomienda hacer un boceto inicial en papel. En lugar de escanear el boceto y trazarlo a mano alzada en el ordenador, Pepper afirma: "Quienes dominen una tableta gráfica y un lápiz óptico podrían realizar los siguientes cambios directamente en CorelDRAW utilizando un escaneo del boceto como base y dibujando sobre él. Yo prefiero utilizar lápiz y tinta, y una mesa de luz"; la mayor parte de la imagen final se trazó a mano con tinta. Más tarde, la imagen del dibujo lineal se escaneó a 600 ppp, se limpió en un programa de pintura y luego se trazó automáticamente con un programa. [1] Una vez que la imagen en blanco y negro estaba en el programa de gráficos, se añadieron otros elementos y se coloreó la figura.

De manera similar, Ploch recreó un diseño a partir de una fotografía digital. Importó el archivo JPEG y trazó a mano algunas "formas básicas" y las coloreó en el programa de dibujo gráfico; las formas más complejas se manejaron de manera diferente. Ploch utilizó un editor de mapas de bits para eliminar el fondo y recortar los componentes más complejos de la imagen. Luego imprimió la imagen y la trazó a mano sobre papel de calco para obtener un dibujo de líneas en blanco y negro limpio. Ese dibujo fue escaneado y luego vectorizado con un programa. [2]

Automático

Algunos programas automatizan el proceso de vectorización. Algunos ejemplos son Adobe Streamline (descontinuado), PowerTRACE de Corel y Potrace . Algunos de estos programas tienen una interfaz de línea de comandos, mientras que otros son interactivos y permiten al usuario ajustar la configuración de conversión y ver el resultado. Adobe Streamline no es solo un programa interactivo, sino que también permite al usuario editar manualmente el mapa de bits de entrada y las curvas de salida. Se accede a PowerTRACE de Corel a través de CorelDRAW; CorelDRAW se puede utilizar para modificar el mapa de bits de entrada y editar las curvas de salida. Adobe Illustrator tiene una función para trazar curvas individuales. [3]

Los programas automatizados pueden tener resultados mixtos. Se utilizó un programa (PowerTRACE) para convertir un mapa PNG a SVG. El programa hizo un buen trabajo con los límites del mapa (la tarea más tediosa del trazado) y la configuración eliminó todo el texto (objetos pequeños). El texto se volvió a insertar manualmente.

Mapa en formato PNG (13 kB)
Mapa después de la conversión automática y retoque para volver a agregar las etiquetas y ajustar los colores (18 kB)

Es posible que otras conversiones no sean tan exitosas. Los resultados dependen de tener escaneos de alta calidad, configuraciones razonables y buenos algoritmos.

Las imágenes escaneadas suelen tener mucho ruido. Es posible que sea necesario trabajar mucho para limpiar la imagen de mapa de bits. Borre las marcas y rellene las líneas y las áreas.

Consejo de Corel: coloque la imagen sobre una mesa de luz, cúbrala con papel vegetal ( papel de calco ) y luego entinte manualmente los contornos deseados. Luego escanee el papel vegetal y utilice un programa de conversión automática de trama a vector en ese escaneo.

Opciones

Aunque estas líneas pueden parecer sólidas, están lejos de ser perfectas. Las líneas se dibujaron sobre papel vitela con una pluma estilográfica, un bolígrafo de gel de 0,7 mm y un lápiz HB de 0,5 mm. Las imágenes se escanearon a 600 píxeles por pulgada con RGB de 24 bits. El ancho de las líneas termina siendo de entre 10 y 14 píxeles. Los colores de la tinta no son uniformes y tienen reflejos especulares que colocan píxeles claros dentro de las líneas. Las líneas de lápiz también tienen defectos internos debido a la rugosidad (dientes) del papel. El escaneo también tiene algunos artefactos de enmascaramiento poco nítidos .

Existen muchos estilos y posibilidades de imagen diferentes y ningún método de vectorización funciona bien con todas las imágenes. Por lo tanto, los programas de vectorización tienen muchas opciones que influyen en el resultado.

Un problema es cuáles son las formas predominantes. Si la imagen es de un formulario para rellenar, entonces probablemente tendrá sólo líneas verticales y horizontales de un ancho constante. La vectorización del programa debería tener eso en cuenta. Por otro lado, un dibujo CAD puede tener líneas en cualquier ángulo, puede haber líneas curvas y puede haber varios grosores de línea (gruesas para objetos y delgadas para líneas de dimensión). En lugar de (o además de) curvas, la imagen puede contener contornos rellenos con el mismo color. Adobe Streamline permite a los usuarios seleccionar una combinación de reconocimiento de líneas (líneas horizontales y verticales), reconocimiento de línea central o reconocimiento de contorno. [4] Streamline también permite descartar formas de contorno pequeñas; la idea es que esas formas pequeñas son ruido. [5] El usuario puede establecer el nivel de ruido entre 0 y 1000; un contorno que tenga menos píxeles que ese ajuste se descarta.

Otro problema es la cantidad de colores de la imagen. Incluso las imágenes creadas como dibujos en blanco y negro pueden terminar con muchos tonos de gris. Algunas rutinas de dibujo de líneas emplean anti-aliasing; un píxel completamente cubierto por la línea será negro, pero un píxel que esté parcialmente cubierto será gris. Si la imagen original está en papel y se escanea, el resultado es similar: los píxeles de los bordes serán grises. A veces, las imágenes se comprimen (por ejemplo, las imágenes JPEG) y la compresión introducirá niveles de gris.

Muchos de los programas de vectorización agrupan píxeles del mismo color en líneas, curvas o formas delineadas. Si cada color posible se agrupa en su objeto, puede haber una enorme cantidad de objetos. En cambio, se le pide al usuario que seleccione un número finito de colores (normalmente menos de 256), la imagen se reduce a utilizar esa cantidad de colores (este paso se denomina cuantificación del color ) y, a continuación, se realiza la vectorización en la imagen reducida. [6] En el caso de imágenes de tonos continuos, como fotografías, el resultado de la cuantificación del color es la posterización . Los rellenos de degradado también se posterizarán. [7]

La reducción del número de colores de una imagen suele ser facilitada por un histograma. Se pueden seleccionar los colores más comunes como representantes y los demás colores se asignan a su representante más cercano. Cuando el número de colores se establece en dos, se le puede solicitar al usuario que realice ajustes de umbral y contraste. [8] Un ajuste de contraste busca cambios significativos en el color del píxel en lugar de un color en particular; en consecuencia, puede ignorar las variaciones de color graduales en un relleno de degradado . Una vez que se ha extraído el contorno, el usuario puede reintroducir manualmente el relleno de degradado.

El programa de vectorización querrá agrupar una región del mismo color en un único objeto. Puede hacerlo haciendo que el límite de la región siga exactamente los límites de los píxeles, pero el resultado será un límite de líneas ortogonales, a menudo cortas. La conversión resultante también tendrá los mismos problemas de pixelación que tiene un mapa de bits cuando se amplía. En cambio, el programa de vectorización necesita aproximar el límite de la región con líneas y curvas que sigan de cerca los límites de los píxeles, pero que no sean exactamente los límites de los píxeles. Un parámetro de tolerancia le indica al programa con qué precisión debe seguir los límites de los píxeles. [9]

El resultado final de muchos programas de vectorización son curvas que consisten en curvas de Bézier cúbicas . El límite de una región se aproxima con varios segmentos de curva. Para mantener una curva suave, las uniones de dos curvas se restringen para que las tangentes coincidan. Un problema es determinar dónde una curva se dobla tan bruscamente que no debería ser suave. [10] Las porciones suaves de una curva se aproximan luego con un procedimiento de ajuste de curva de Bézier. Se puede utilizar la división sucesiva. Este procedimiento de ajuste intenta ajustar la curva con una sola curva cúbica; si el ajuste es aceptable, entonces el procedimiento se detiene. De lo contrario, selecciona algún punto ventajoso a lo largo de la curva y divide la curva en dos partes. Luego ajusta las partes mientras mantiene la tangente de unión. Si el ajuste sigue siendo inaceptable, entonces divide la curva en más partes. [11]

Algunos vectorizadores son programas independientes, pero muchos tienen interfaces interactivas que permiten al usuario ajustar los parámetros del programa y ver rápidamente el resultado. PowerTRACE, por ejemplo, puede mostrar la imagen original y obtener una vista previa de la imagen convertida para que el usuario pueda compararlas; el programa también informa sobre información como el número de curvas. [12]

Ejemplo

A la derecha hay una ilustración que muestra el funcionamiento de la rádula en los moluscos. La parte superior es en su mayor parte un diagrama de contorno relleno con un grosor de un bolígrafo, pero tiene un relleno de degradado de malla a lo largo de la parte inferior de la concha y a lo largo de la parte inferior del alimento. También tiene algunos pinceles artísticos en la parte superior izquierda de la concha. La parte inferior de la ilustración tiene cuatro grosores de línea y algunos caracteres pequeños; el relleno de color es simple, excepto por un degradado en las líneas irregulares.

Se trazó la imagen de 531×879 píxeles; se utilizaron 50 colores. La mayoría de las líneas (si no todas) se perdieron; se convirtieron en regiones negras y sus anchos de línea efectivos variaron. El contorno negro alrededor de la comida azul en la parte superior desapareció. Los rellenos de degradado y los puntos de pincel se perdieron debido a la cuantificación/posterización del color; algunos puntos de pincel desaparecieron. Algunas letras sobrevivieron a la vectorización con distorsión, pero la mayoría de las letras se descartaron. Perder las letras no es un gran problema; la edición posterior a la conversión querría eliminar la anotación y reemplazarla con texto en lugar de curvas. Las líneas delgadas que se cruzan en un ángulo poco profundo crearon regiones rellenas y los contornos que se cruzan de las regiones rellenas se volvieron confusos; vea la esquina inferior derecha. El trazado también tiene algunas características extrañas. Muchos contornos negros se tocan, por lo que se convierten en objetos grandes y complicados en lugar de solo contornos para regiones específicas. En lugar de solo un fondo, una región blanca rectangular separa los dos rectángulos delineados. Los objetos etiquetados como op , rp y rr no son formas simples en capas; El resultado deseado tendría rr superpuesto por rp que está superpuesto por op .

Dominios de uso

La vectorización es efectiva en datos de entrada de un solo color y sin gradiente, como las firmas.

Imágenes de tono continuo

La vectorización no suele ser adecuada para imágenes de tonos continuos, como retratos. El resultado suele ser deficiente. Por ejemplo, se aplicaron muchos algoritmos de trazado de imágenes diferentes a una imagen JPEG de 25 kB. Las imágenes vectoriales resultantes son al menos diez veces más grandes y pueden tener efectos de posterización pronunciados cuando se utiliza una pequeña cantidad de colores.

Véase también

Referencias

  1. ^ Pepper 2005, págs. 68-71
  2. ^ Ploch 2005, pág. 17
  3. ^ Adobe 1998, págs. 100-101
  4. ^ Adobe 1992, pág. 39
  5. ^ Adobe 1992, págs. 40-41
  6. ^ Adobe 1992, pág. 53
  7. ^ Adobe (1998, págs. 348-350) analiza las bandas de color en los rellenos degradados.
  8. ^ Adobe 1992, págs. 54-55
  9. ^ Adobe 1992, págs. 59-60
  10. ^ Itoh y Ohno 1993
  11. ^ Schneider 1990
  12. ^ Corel 2005, pág. 217

Lectura adicional

Enlaces externos