¿Cómo reconocer los colores de la tabla de colores?

9

Estoy desarrollando una aplicación de visión que utiliza la tabla de colores a continuación y la cámara para extraer el color de cada parche en la tabla. Para hacer eso, primero tengo que detectar el área del gráfico en una imagen y hacer coincidir el área con la plantilla existente que contiene ubicaciones de parches.

Mi pregunta: necesito detectar el área del parche de color reconociendo las cuatro esquinas del gráfico. Puede ver las esquinas que indican los pequeños rectángulos insertados en la imagen a continuación. Sé que una forma de hacerlo es permitir que el usuario seleccione esas esquinas haciendo clic en él. Pero, ¿hay alguna forma de detectar automáticamente cuatro esquinas de la imagen?

ingrese la descripción de la imagen aquí

Tae-Sung Shin
fuente
Por curiosidad, ¿dónde se puede adquirir una tabla de referencia de color?
hotpaw2
@ hotpaw2 Como casi siempre, google. Busque el término "objetivo it8"
Tae-Sung Shin

Respuestas:

4

Puede alojar líneas de hough para detectar el área de color.

  • Primero detecta todas las líneas
  • Las líneas con mayor longitud serían las más externas.
  • Elija la línea horizontal superior y haga coincidir la plantilla para los cuadrados.
  • Una vez que encuentre los cuadrados, recorra el peaje hacia abajo hasta llegar al otro conjunto de cuadrados.
  • Marque todos los puntos donde se encontraron los cuadrados
  • Ahora tiene un área cerrada para la tabla de colores.
Wajih
fuente
2

Cada conjunto 2D de un componente de color (RGB, et.al.) es bastante alto y distintivo. Por lo tanto, podría intentar usar un FFT 2D complejo de cada componente de color para determinar la escala y el desplazamiento de la imagen de la foto frente a la de una imagen de referencia. Luego, utilícelos para ajustar las coordenadas medidas / conocidas de las esquinas y / o parches en la imagen de referencia para producir coordenadas en la foto.

Es posible que deba medir de primera mano algunas coordenadas en una imagen de referencia utilizando un editor de mapas de bits.

hotpaw2
fuente
1

Como primer paso, eliminaría todo el desorden con gris y texto. Comenzando por los cuatro lados, me detendré hasta que la mayoría de los píxeles sean de un color "gris" único.

Esto te dejará solo con el tablero de damas que consta de diferentes colores. Esperas unos 22x12, unos 264 colores.

Un método más simple sería aplicar un algoritmo de palatalización más simple. Si tuviera que traducir esto en una imagen GIF, aplica la cuantización del color con cada grupo de colores representado como el color del centroide.

Esto sería específicamente fácil en su caso porque la fuente ya es un paladar de algún tipo y puede hacer una suposición decente para comenzar.

Mira esto:

NeuQuant: http://members.ozemail.com.au/~dekker/NEUQUANT.HTML

Cuantización del color de Octree: http://www.cubic.org/docs/octree.htm . Mira esto también.

Estas son solo algunas referencias; pero encontrará código listo para usar en la mayoría de las bibliotecas que usan dichos formatos de imagen. (BMP, PNG y GIF admiten tales representaciones). También revise libpng y libjpeg para algunas implementaciones rápidas.

Dipan Mehta
fuente
0

¿Por qué no buscar los límites del gráfico, en lugar de las esquinas? Puede intentar usar un detector de bordes y luego encontrar líneas rectas con la Transformación de Hough.

Dima
fuente