[Jderobot-dev] Error de imagen en opencv por triplicado
Oscar Garcia
oscar.robotica en linaresdigital.com
Jue Oct 25 16:02:39 CEST 2012
El 25/10/2012 8:40, Pablo Mayor Sanchez escribió:
> Hola Oscar , aquí tienes el código , supongo que sera lo que comentas
> "CV_8UC3" , en concreto la imagen que se triplica es de la image3
Voy a echarle un vistazo.
> CvSize s = cvSize(image3.width, image3.height);
>
Mejor:
CvSize s = cvGetSize(image3);
> Mat *in = cvCreateMat(image3.height,image3.width,CV_32FC3 );
>
¿Realmente es necesario que crees la imagen con tres canales de coma
flotante de 32 bits? Piensa que luego la comparación escalar la haces
con enteros y fíjate que luego creas imágenes de 8 bit y 3 canales:
> cvConvertImage(&image3,in);
> Mat myIplImageMat= cvCreateImage(cvSize(image3.width,
> image3.height), 8, 3);;
>
Esto lo puedes hacer mejor con cvGetSize o bien reusando la variable "s"
que creaste anteriormente:
Mat myIplImageMat= cvCreateImage(cvGetSize(image3), 8, 3);
o
Mat myIplImageMat= cvCreateImage(s, 8, 3);
> inRange(in, Scalar(0, 0, 0), Scalar(132, 220, 255),
> myIplImageMat);
>
Algo va mal, por un lado usas una imagen de entrada en 3 canales de
color de 8 bit y por otro lado creas la imagen de destino como de 3
canales de color en coma flotante de 32 bits... ¿has pensado en unificarlo?
Piensa que TODOS los argumentos tienen que tener el mismo tamaño y tipo
de dato y que la salida es CV_8U. Dará 0 si el valor está fuera y 255 (o
todo a 1) si está dentro.
Trata de arreglar esa parte, contando con que el tipo de imagen de
salida no tiene el formato correcto (te recuerdo, CV_8U), y nos cuentas.
Un saludo.
More information about the Jde-developers
mailing list