[Jderobot-dev] Error de imagen en opencv por triplicado
Pablo Mayor Sanchez
pablo.mayor.es en gmail.com
Jue Oct 25 08:40:26 CEST 2012
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
void Viewer::display(const colorspaces::Image& image, const
colorspaces::Image& image2, const colorspaces::Image& image3) {
IplImage src = image;
IplImage src3 = image3;
IplImage *gray;
IplImage *dst;
CvSize s = cvSize(image3.width, image3.height);
Mat *in = cvCreateMat(image3.height,image3.width,CV_32FC3 );
cvConvertImage(&image3,in);
Mat myIplImageMat= cvCreateImage(cvSize(image3.width,
image3.height), 8, 3);;
inRange(in, Scalar(0, 0, 0), Scalar(132, 220, 255), myIplImageMat);
gray = cvCreateImage(cvSize(image.width, image.height), 8, 1);
dst = cvCreateImage(cvSize(image.width, image.height), 8, 3);
cvCvtColor(&src, gray, CV_RGB2GRAY);
//Pasamos la referencia de la imagen a src que apunta a imagen
cvCvtColor(gray, &src, CV_GRAY2RGB);
cvReleaseImage(&gray);
cvReleaseImage(&dst);
colorspaces::ImageRGB8 img_rgb8(image); //conversion will happen if
needed
Glib::RefPtr<Gdk::Pixbuf> imgBuff =
Gdk::Pixbuf::create_from_data((const guint8*) img_rgb8.data,
Gdk::COLORSPACE_RGB,
false,
8,
img_rgb8.width,
img_rgb8.height,
img_rgb8.step);
colorspaces::ImageRGB8 img_rgb8_2(image2); //conversion will happen
if needed
Glib::RefPtr<Gdk::Pixbuf> imgBuff2 =
Gdk::Pixbuf::create_from_data((const guint8*)
img_rgb8_2.data,
Gdk::COLORSPACE_RGB,
false,
8,
img_rgb8_2.width,
img_rgb8_2.height,
img_rgb8_2.step);
//colorspaces::ImageRGB8 img_rgb8_3(R); //conversion will happen if
needed
cv::Size myIplImageMat_size = myIplImageMat.size();
//std::cout << "Width2=" << myIplImageMat_size.width << "Height2="
<< myIplImageMat_size.height << std::endl;
Glib::RefPtr<Gdk::Pixbuf> imgBuff3 =
Gdk::Pixbuf::create_from_data((const guint8*)
myIplImageMat.data,
Gdk::COLORSPACE_RGB,
false,
8,
myIplImageMat_size.width,
myIplImageMat_size.height,
myIplImageMat.step);
gtkimage->clear();
gtkimage->set(imgBuff);
gtkimage2->clear();
gtkimage2->set(imgBuff2);
gtkimage3->clear();
gtkimage3->set(imgBuff3);
displayFrameRate();
mainwindow->resize(1, 1);
while (gtkmain.events_pending())
gtkmain.iteration();
/*
* cameraview --Ice.Config=cameraview.cfg
* cameraserver --Ice.Config=cameraserver.cfg
*/
}
El 24 de octubre de 2012 23:10, Oscar Garcia <
oscar.robotica en linaresdigital.com> escribió:
> El mié, 24-10-2012 a las 22:54 +0200, Pablo Mayor escribió:
> > Buenas noches tengo una duda respecto a opencv , estoy utilizando la
> función inrange para extraer un determinado color, el problema está es que
> como salida me da tres imágenes iguales , eso si con un ancho de 1/3 más
> pequeño, supongo que será un problema de conversión de colorspace a mat
> pero me resulta extraño .
>
> ¿Podrías poner el código que usas?
>
> ¿El formato de entrada y de salida es CV_8UC3? ¿Cuál usas? ¿Has usado
> algún ROI?
>
> Si no usas el mismo tamaño de array de imagen que el array de
> comparaciones (usando Scalar, por ejemplo) pueden salir cosas raras (no
> he probado, estoy elucubrando).
>
> Mejor péganos tu código y así podremos ver más rápido dónde está el
> error.
>
> Un saludo.
>
> _______________________________________________
> Jde-developers mailing list
> Jde-developers en gsyc.es
> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://gsyc.escet.urjc.es/pipermail/jde-developers/attachments/20121025/e574d6d5/attachment.htm
More information about the Jde-developers
mailing list