[Jderobot] Imáges y sus tipos de datos
Eduardo Perdices
eperdices en gsyc.es
Mie Oct 30 15:50:54 CET 2013
Hola,
el tipo IplImage es el tipo antiguo que se utilizaba en opencv,
sigueapareciendo en las nuevas versiones pero desaparecerá, hay que
utilizar a partir de ahora cv::Mat.
Para pasar de lo recibido por Ice a un cv::Mat hay que hacer esto:
jderobot::ImageDataPtr data = cprx->getImageData();
colorspaces::Image::FormatPtr fmt =
colorspaces::Image::Format::searchFormat(data->description->format);
colorspaces::Image image(data->description->width,
data->description->height, fmt, &(data->pixelData[0]));
cv::Mat src=image;
Si luego quieres mostrarla imagen en el Guipuedeshacerlo asídesde
uncv::Mat(en GTK):
char* this->imgSrc = new char[IMAGE_WIDTH * IMAGE_HEIGHT * IMAGE_CHANNELS];
memcpy(this->imgSrc, (char *)src.data, IMAGE_WIDTH * IMAGE_HEIGHT *
IMAGE_CHANNELS * sizeof(char));
Glib::RefPtr<Gdk::Pixbuf> imgBuff = Gdk::Pixbuf::create_from_data((const
guint8*)this->imgSrc,
Gdk::COLORSPACE_RGB,
false,
8,
src.cols,
src.rows,
src.step);
gtk_image->clear();
gtk_image->set(imgBuff);
Saludos.
El 30/10/13 15:43, ILDEFONSO GONZALEZ SANCHEZ escribió:
> Hola,
>
> voy a intentar ser mas concreto en la duda :
>
> El componente que estoy haciendo en estos momentos, tiene 2 hilos:
> -El primero (control), se encarga de conectar con ice y guardar los
> datos en una clase de memoria compartida, en la que las variables las
> estoy declarando como estáticas.
> -El segundo (Gui), se encarga de recoger esa imagen, del tipo
> jderobot::ImageDataPtr, la pasa al tipo colorspaces::Image (con
> formato rgb8). Y esta es la que muestro en 4 pantallas distintas, la
> intención es aplicar un filtro a 3 de ellas.
>
> Entonces lo que intento y no consigo es:
> -iterar o realizar alguna modificación con funciones sobre le tipo de
> dato colorspaces::Image (con formato rgb8):
> (Estas funciones las he encontrado en visionlib/colorspaces/image)
> void toGRAY8(Image& dst) const throw(FormatMismatch);
> void toYUY2(Image& dst) const throw(FormatMismatch);
> void toHSV8(Image& dst) const throw(FormatMismatch);
> void toYCRCB(Image& dst) const throw(FormatMismatch);
> -O bien pasarla a IplImage (Para el cual si puedo iterar), lo que no
> consigo es convertir la imagen en este tipo.
> -O bien trabajar con el tipo de dato Mat (Que por lo que he visto es
> la propia de opencv), que me esta mostrando todo en negro.
>
> Entonces las convinaciones posibles que puedo hacer son:
> -jderobot::ImageDataPtr--->colorspaces::Image--> display OK
> -jderobot::ImageDataPtr--->colorspaces::Image--->cv::Mat---> KO (en negro)
>
>
> Un saludo y muchas gracias,
>
> Ildefonso
> ------------------------------------------------------------------------
> *De:* jde-developers-bounces en gsyc.es [jde-developers-bounces en gsyc.es]
> en nombre de ILDEFONSO GONZALEZ SANCHEZ [i.gonzalezsan en alumnos.urjc.es]
> *Enviado:* miércoles, 30 de octubre de 2013 13:08
> *Para:* jde-developers
> *Asunto:* [Jderobot] Imáges y sus tipos de datos
>
> Hola buenas tardes,
>
> tengo dudas sobre el tipo de datos de los siguientes tipos de imágenes:
> -jderobot::ImageDataPtr// la que se recibe del plugin de jderobot
> -colorspaces::Image //Esta la muestro correctamente pero no consigo
> iterar sobre ella.
> -IplImage//He encontrado algoritmos para iterar pero no consigo pasar
> la imagen a este formato.
> -cv::Mat //cuando paso la imagen a este formato y la muestro aparece
> negra con puntos blancos.
>
> Me gustaría tener claro para que sirve cada una, que campos contienen
> para poder iterar sobre ellas y como podría cambiar el formato de unas
> a otras.
>
> Gracias y un saludo,
>
> Ildefonso González Sánchez
>
>
>
> _______________________________________________
> 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/20131030/45f188b3/attachment-0001.htm
More information about the Jde-developers
mailing list