Estoy trabajando con QT y OpenCV, tengo este cuadrado que necesito extraer pero necesito usar la conversión de RGB a un canal (ROJO básicamente). Cualquier consejo será más que bienvenido, por favor siéntase libre de aconsejar qué funciones usar. Gracias por adelantado.extrae una imagen de canal de una imagen RGB con opencV
Respuesta
http://kemppro.blogspot.com/2014/05/splitting-image-in-to-three-channels.html Usted puede obtener respuesta desde allí
Intenta evitar tener una respuesta de solo enlace. Vea si puede parafrasear la información más relevante del enlace – StephenTG
Por lo que yo sé una llamada a,
cvtColor(src, bwsrc, CV_RGB2GRAY);
puede hacer eso, donde src es la imagen fuente multicanal y el tercer parámetro representa el número de canales en el destino. Entonces, puedes hacer eso en OpenCV y mostrar la imagen en tu interfaz Qt.
Por otro lado, puede dividir los canales en matrices separadas de un solo canal utilizando el método split() apropiado.
http://opencv.willowgarage.com/documentation/cpp/core_operations_on_arrays.html#split
creo cvSplit
es lo que estás buscando (docs). Se puede utilizar, por ejemplo, para dividir RGB en R, G y B:
/* assuming src is your source image */
CvSize s = cvSize(src->width, src->height);
int d = src->depth;
IplImage* R = cvCreateImage(s, d, 1);
IplImage* G = cvCreateImage(s, d, 1);
IplImage* B = cvCreateImage(s, d, 1);
cvSplit(src, R, G, B, null);
Nota tendrá que tener cuidado con el pedido; asegúrese de que la imagen original esté realmente ordenada como R, G, B (hay una posibilidad decente de que sea B, G, R).
esto es probablemente lo que buscó el consultante. – kiltek
Dado que se trata de qt
Voy a dar una respuesta en C++.
// Create Windows
namedWindow("Red",1);
namedWindow("Green",1);
namedWindow("Blue",1);
// Create Matrices (make sure there is an image in input!)
Mat input;
Mat channel[3];
// The actual splitting.
split(input, channel);
// Display
imshow("Blue", channel[0]);
imshow("Green", channel[1]);
imshow("Red", channel[2]);
probado en OpenCV 2.4.5
- 1. OpenCV cómo reescribir una imagen RGB
- 2. OpenCV dibujar una imagen sobre otra imagen
- 3. Obtener RGB de una imagen almacenada
- 4. ¿Cómo visualizo el canal rojo de una imagen en Matlab?
- 5. restar una imagen de otra usando openCV
- 6. convirtiendo correctamente una imagen CMYK a RGB con RMagick
- 7. ¿Cómo creo una imagen CG con datos RGB?
- 8. Transferencia de una imagen de Matlab a un OpenCV IplImage
- 9. Encontrar la ubicación de rectángulos en una imagen con OpenCV
- 10. Detectar si un objeto de una imagen está en otra imagen con OpenCV
- 11. Contraste estirando una imagen por openCV
- 12. Cómo afilar una imagen en OpenCV?
- 13. Cargando una imagen usando OpenCV en Android
- 14. ¿Cómo creo una imagen de OpenCV desde una imagen de PIL?
- 15. Convierta una imagen a una matriz RGB en Javascript
- 16. Usando python PIL para convertir una imagen RGB en una imagen pura en blanco y negro
- 17. Mapa de imagen por canal alfa
- 18. promedio de color RGB de la Imagen
- 19. ¿Crear imagen a partir de datos RGB?
- 20. Lienzo: ¿enmascarar una imagen y preservar su canal alfa?
- 21. Buscar una imagen dentro de una imagen
- 22. convertir una imagen RGB a escala de grises Imagen reducir la memoria en java
- 23. leer números y letras de una imagen usando openCV
- 24. Convertir imagen Bayer de 12 bits a RGB de 8 bits usando OpenCV
- 25. OpenCV algoritmo K-medias de funcionamiento en una imagen
- 26. Detección de área brillante rectangular en una imagen usando OpenCv
- 27. cómo convertir una imagen RGB a numpy array?
- 28. Conversión de imagen OpenCV de RGB a escala de grises utilizando imread dando resultados pobres
- 29. Cómo encontrar esquinas en una imagen usando OpenCv
- 30. Cómo copiar una región de imagen usando opencv en python?
¿Le gustaría echar un vistazo a la función cvtColor()? http://opencv.willowgarage.com/documentation/cpp/miscellaneous_image_transformations.html#cvtColor –