tutorial seguimiento rojo objetos español detectar deteccion colores color colors opencv space

colors - seguimiento - opencv python tutorial español



detectar el espacio de color con openCV (5)

¿cómo puedo ver el espacio de color de mi imagen con openCV?

Me gustaría asegurarme de que es RGB, antes de convertir a otro utilizando la función cvCvtColor ()

Gracias



Como dijo el rcv , no hay un método para detectar el espacio de color mediante programación inspeccionando los tres canales de color, a menos que tenga un conocimiento previo del contenido de la imagen (por ejemplo, hay un marcador en la imagen cuyo color se conoce). Si va a aceptar imágenes de fuentes desconocidas, debe permitir que el usuario especifique el espacio de color de su imagen. Un buen valor predeterminado sería asumir RGB.

Si modifica alguno de los colores de los píxeles antes de la visualización y está utilizando un visor que no es de OpenCV, probablemente debería usar cvCvtColor(src,dst,CV_BGR2RGB) después de haber terminado de ejecutar todos sus filtros de color. Si está utilizando OpenCV para el visor o guardará las imágenes en un archivo, debe asegurarse de que estén en el espacio de color de BGR.


Desafortunadamente, OpenCV no proporciona ningún tipo de indicación en cuanto al espacio de color en la estructura IplImage, por lo que si recoge ciegamente una imagen Ipl desde algún lugar, simplemente no hay forma de saber cómo fue codificada. Además, ningún algoritmo puede decir definitivamente si una imagen debe interpretarse como HSV vs. RGB; todo es solo un montón de bytes para la máquina (¿debería ser HSV o RGB?). Te recomiendo que envuelvas tus IplImages en otra estructura (¡o incluso en una clase de C ++ con plantillas!) Para ayudarte a hacer un seguimiento de esta información. Si estás realmente desesperado y solo tratas con cierto tipo de imágenes (escenas al aire libre, oficinas, caras, etc.) puedes intentar calcular algunas estadísticas en tus imágenes (por ejemplo, construir estadísticas de histogramas para imágenes RGB naturales y otras para imágenes HSV naturales), y luego intente clasificar su imagen totalmente desconocida comparando el espacio de color al que se acerca su imagen.


La estructura IplImage tiene un campo llamado colorModel consta de 4 caracteres. Desafortunadamente, OpenCV ignora este campo. Pero puede usar este campo para realizar un seguimiento de los diferentes modelos de color.


txandi hace un punto interesante. OpenCV tiene un espacio de color BGR que se utiliza de forma predeterminada. Esto es similar al espacio de color RGB, excepto que los canales B y R se cambian físicamente en la imagen. Si el orden de los canales físicos es importante para usted, necesitará convertir su imagen con esta función: cvCvtColor (defaultBGR, imageRGB, CV_BGR2RGB).