1. Home
  2. Tutoriales
  3. Trazado de mapas de bits en Ruby

Trazado de mapas de bits en Ruby

Intención

El trazado de mapas de bits tiene por objeto convertir los datos de los mapas de bits en datos vectoriales mediante la detección de los bordes. Esta detección se realiza mediante la comparación de los valores de gris. Para detectar los bordes, los valores de color deben diferir lo suficiente, de lo contrario el trazado fallará.

Trazar la imagen de mapa de bits

El inicio del rastreo se realiza seleccionando la imagen y haciendo clic en el icono de rastreo.


Esto abrirá el siguiente widget.

Ajuste los parámetros y haga clic en «Trace» para iniciar el proceso de trazado.
En función de la imagen de origen y de los valores elegidos, recibirá un resultado de trazado.

Nota: Si los ajustes dan como resultado una traza vacía, aparecerá un mensaje de error y no se crearán vectores.

Parámetros

Sólo el contorno exterior

Limitar la detección de bordes sólo al contorno más externo. De este modo, el algoritmo de trazado no buscará contornos adicionales dentro de uno detectado. Esta función se utiliza cuando se pretende cortar el contorno exterior.

Trazado con el contorno exterior sólo activado (abajo) frente a desactivado (arriba)

Tamaño de grupo ignorado

Este parámetro se utiliza para minimizar el ruido. Aumentar este valor indica a Rubyque ignore los grupos más grandes de píxeles con un color similar.


Trazado con un tamaño de racimo de 1 (arriba), 10 (centro) y 30 (abajo).
Al aumentar el valor se filtran los puntos blancos más grandes hasta que sólo se detecta el contorno (rectángulo negro).

Umbral en blanco y negro

Este parámetro es el que tiene mayor impacto en el trazado, porque define el nivel de contraste que se utilizará para detectar los bordes.
El número representa el valor de gris (Índice 0-255) que se utilizará como umbral para añadir o no un píxel al vector. Esto significa que cualquier valor por debajo será tratado como negro, y cualquier valor por encima como blanco. Las áreas blancas y negras resultantes definen los bordes que serán detectados (esto se hace en el fondo no visible para el usuario).


Resultados en función del umbral seleccionado. Al principio sólo se detectan las zonas realmente oscuras, al final sólo se excluye el fondo blanco.

Suavizar el nivel

Como las imágenes están formadas por píxeles, éstos forman «escaleras» cuando se amplían lo suficiente.

El trazado de la imagen generaría entonces un vector que sigue esas «escaleras». En la mayoría de los casos eso no es intencionado.
Con «Nivel de suavidad» puede definir la precisión con la que el algoritmo debe seguir el contorno. Un mayor suavizado dará lugar a vectores menos nerviosos. Por otro lado, si se alisa demasiado se pueden perder detalles.


El trazado de una «o» sin suavizado (izquierda) frente a un suavizado alto (derecha) muestra claramente el efecto sobre los círculos.


Si se alisa demasiado, se perderán detalles.

Cómo sacarle el máximo partido

Imágenes de origen de alta calidad

Los mapas de bits en Rubysiempre se convertirán en imágenes en escala de grises. Utiliza mapas de bits de alta calidad, porque son los que ofrecen los mejores resultados. Las imágenes que comparten colores entre la sección a trazar y el fondo también son difíciles de trazar. No se puede producir un borde claro.

  • Buena – alta calidad, buena resolución, alto contraste, poco antialiasing en los bordes, sin mezcla de colores
  • Malo – baja resolución, pobre contraste, fuerte antialiasing
  • Malo – los colores del cuchillo y del fondo se mezclan, no es posible crear un borde

Mejorar la imagen antes del trazado

Elimina todo el ruido posible de la imagen ajustando el contraste y el umbral de color. Todo lo que no está en el mapa de bits, no puede ser detectado incorrectamente. Hay algunos consejos que puedes seguir dentro y fuera de Ruby:

Ajustes antes de importar a Ruby

Recortar la parte necesaria de la imagen

Corta las partes que no necesites para el contorno. Girar la imagen también puede ayudar a recortar sólo la parte deseada.

Antes:

Después:

Eliminar otros contenidos

Abra la imagen con un editor de imágenes y elimine todo el fondo o las partes no deseadas que pueda (borrador, sustitución del color, etc.).

Ajustes dentro de Ruby ®

Ajustar el umbral de color (curva de tono)

Ajuste los umbrales de color para mejorar la calidad de los bordes. Esto se hace seleccionando la imagen y haciendo clic en el lápiz de la esquina superior derecha.

Ahora intente ajustar la imagen de manera que el fondo sea lo más brillante posible y el contorno lo más negro posible.
También es posible el camino inverso, pero detecta el contorno inverso.

Para cambiarlo fácilmente, se puede invertir la imagen. Esto puede parecer poco familiar pero no altera el contorno para el algoritmo de trazado y permite trazar el correcto.

Básicamente funciona así:

  • El eje X define el color de entrada (= qué valores de gris del original deben cambiarse)
    • Mover un punto a la izquierda incluye más colores hacia el negro
  • El eje Y define el color de salida (= a qué color debe cambiarse el color de entrada)
    • Al mover el punto hacia arriba se crea un color más brillante (hacia el blanco)
  • Agarra la línea en cualquier punto y muévela como sea necesario
    • Todos los colores entre los puntos se cambiarán en consecuencia

Se pueden encontrar explicaciones más detalladas en la web si se busca «tone curve input output».

Los siguientes ejemplos ilustran las diferencias:


Fondo blanco, contorno negro es fácil de trazar y da el contorno deseado.


Fondo negro, contorno blanco es más difícil de trazar y produce el contorno inverso.

Resumen

  • Utilice imágenes de buena calidad.
  • Los mapas de bits de mala calidad (por ejemplo, baja resolución, muchos artefactos, bajo contraste, colores compartidos entre el contorno y el fondo, etc.) normalmente no pueden producir buenas trazas.
  • Prepare la imagen de origen de la forma más ideal posible para el trazado.
    Elimine el ruido, las partes innecesarias, ajuste el contraste y los umbrales de color: lo que no está, no puede ser detectado falsamente.
  • Saber lo que se debe conseguir.
    Ajusta los parámetros correctos de la manera adecuada. El método de prueba y error lleva mucho tiempo y suele ser frustrante.
  • El trazado de mapas de bits no puede hacer magia
    Si el contorno no está claramente definido (porque tiene, por ejemplo, sombras, partes brillantes que se funden con el fondo, etc.), simplemente no se puede trazar.
Updated on 9. septiembre 2022

Related Articles