¿Cuáles son los espacios de color recomendados para detectar color naranja en cv abierto?

Necesito un espacio de color adecuado para detectar el color naranja por encima de los colores muy similares al rojo y al amarillo. Ya he probado algunos espacios de color como: RGB HSV & YUV, pero el objeto que quiero detectar cambia su posición, lo que significa que la luz ambiental cambia. Con el tiempo y este es mi principal problema.

HSV es un buen espacio de color para la detección de color. Este es un mapa de colores hsv para referencia:

El eje x representa el tono en [0,180), el eje y1 representa la saturación en [0,255], el eje y2 representa S = 255, mientras que V = 255.

Para encontrar un color, generalmente busque el rango de H y S, y establezca v en el rango (20, 255).


Por ejemplo:

  1. detectar naranja

Detalles de mi otra respuesta: Elegir los límites HSV superior e inferior correctos para la detección de color con `cv :: inRange` (OpenCV)

Para encontrar el color naranja, buscamos el mapa y encontramos el mejor rango: H: [10, 25], S: [100, 255] y V: [20, 255]. Así que la máscara es cv2.inRange (hsv, (10, 100, 20), (25, 255, 255))

#!/usr/bin/python3 # 2018.01.21 20:46:41 CST import cv2 img = cv2.imread("test.jpg") hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV) mask = cv2.inRange(hsv,(10, 100, 20), (25, 255, 255) ) cv2.imshow("orange", mask);cv2.waitKey();cv2.destroyAllWindows() 

El resultado:

  1. detectar verde / amarillo / azul

Cómo definir un valor de umbral para detectar solo objetos de color verde en una imagen: Opencv

  1. detecta dos colores diferentes

¿Cómo detectar dos colores diferentes usando `cv2.inRange` en Python-OpenCV?

Elegir al azar un sistema de color podría no ser el mejor enfoque.

Un enfoque más sistemático podría ser observando un histogtwig de color como el que se muestra a continuación, que muestra todos los píxeles de la imagen en el cubo RGB.

Luego llena este histogtwig con muestras de color naranja tomadas de varias imágenes, de tal manera que cubra todas las “naranjas” en las que está pensando.

Esto delimitará una región en el espacio RGB y la forma de la región le indicará el sistema de color más adecuado, sabiendo cómo los otros sistemas de color se asignan al cubo. Por ejemplo, HLS se puede representar como un bicono o bipirámide con sus hachas a lo largo de la diagonal principal del cubo.

introduzca la descripción de la imagen aquí

Es cierto que esta es una tarea difícil.