[Jderobot] Imáges y sus tipos de datos

ILDEFONSO GONZALEZ SANCHEZ i.gonzalezsan en alumnos.urjc.es
Jue Oct 31 18:53:01 CET 2013


Hola,

ya me están funcionando los filtros, muchas gracias Edu y Fran.
Voy a revisar parallelice, a ver si puedo optimizar la hebra control.

un saludo,

Ildefonso González Sánchez
________________________________________
De: jde-developers-bounces en gsyc.es [jde-developers-bounces en gsyc.es] en nombre de franciscomiguel.rivas en urjc.es [franciscomiguel.rivas en urjc.es]
Enviado: miércoles, 30 de octubre de 2013 15:01
Para: jde-developers en gsyc.es
Asunto: Re: [Jderobot] Imáges y sus tipos de datos

Buenas,

exacto siguiendo los pasos que te dice Edu no tienes que tener ningún
problema. Una cosa que puedes hacer para optimizar el tiempo de
adquisición es utilizar parallelIce[1].Reducirá los tiempos de espera
de tu hilo de control y conseguirás una ejecución mas fluida.
parallelIce ya te da un cv::Mat por lo que la primera conversión no
tendrías que hacerla, puedes utilizar opencv directamente para hacer
los filtros y luego volcar los datos del cv::Mat en el gui utilizando
los Pixbuf como te ha dicho Edu.



un saludo,
Fran.


[1]http://jderobot.org/Manual-5#parallelIce


"Eduardo Perdices" <eperdices en gsyc.es> escribió:

> 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
>
>



------------------------------------------------------------------
Laboratorio de Análisis del Movimiento, Biomecánica, Ergonomía y
Control Motor (LAMBECOM).
Departamento de Fisioterapia, Terapia Ocupacional, Rehabilitación y
Medicina Física.
Universidad Rey Juan Carlos (URJC).
_______________________________________________
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 mensaje que no está en formato texto plano...
Nombre     : filtros_componente.png
Tipo       : image/png
Tamaño     : 537476 bytes
Descripción: filtros_componente.png
Url        : http://gsyc.escet.urjc.es/pipermail/jde-developers/attachments/20131031/3e642b51/attachment-0001.png 


More information about the Jde-developers mailing list