[Jde] [Fwd: Re: opencv detector de ejes]
Roberto Calvo
rocapal en gsyc.es
Dom Jul 20 21:00:35 CEST 2008
Gracias por la info Javier!!
Cuento mi experiencia con opencv.
Yo he optado por utilizar directamente los tipos IplImage, en los
ejemplos que he visto en [1] (buen manual) y en la documentación de
opencv (opencv-doc package), usan este tipo de estructura para trabajar
con imágenes y aplicar los filtros.
El único problema que me llevó más tiempo solucionar, es que cuando
pasamos una imagen de "formato jde" a IplImage, lo que tenemos que tener
en cuenta es crear esa estructura de imagen con 4canales (bit B, bit G,
bit R y bit dummy).
Para el futuro y para quien lo quiera usar, puede encontrar la función
que ya realiza toda esta conversión en el archivo attention.cpp
( http://svn.jde.gsyc.es/users/rocapal/attention/trunk/attention.cpp/ )
[Ahora mismo esta caido el svn, por el apagón, pero mañana podréis
acceder sin problema]
La función es:
void attention_calculateEdges (char* jdeImage,
int width, int height,
char* edgeImageP)
que dada una imagen en formato "jde", su altura y anchura, devuelve un
char[width*height] donde:
- si el valor de un pixel != 0 hay borde.
- en cualquier otro caso no hay borde.
Además existe una variable interna a esta función llamada 'edge_thresh',
que define cuanto de "finos" queremos ser en la detección de bordes. El
funcionamiento es similar a susan, hay que pasar la imagen a escala de
grises y luego aplicar el filtro de bordes.
Si vamos a tener opencv como referente, quizás no sea mala idea crear un
pequeño wrapper con las funciones más comunes (bordes, movimiento,
rgb2hsi ...)
saludetes!
[1]
http://www.cs.iit.edu/~agam/cs512/lect-notes/opencv-intro/opencv-intro.html#
El vie, 18-07-2008 a las 19:58 +0200, Javier MartÃn escribió:
> Hola,
>
> pues la estructura CvMat tiene un campo que es un puntero directo a
> los datos subyacentes. En el caso que os he puesto, el de encapsular
> una imagen de jde, se podrÃa acceder a *mycolorA, el colorA del driver
> usado, desde imgMyColorA asÃ: imgMyColorA.data.ptr
>
> De igual manera, los datos subyacentes a un tipo IplImage están en un
> campo de la estructura llamado imageData.
>
> Los tipos IplImage y CvMat son subtipos de CvArr, asà que todas las
> funciones aplicables sobre CvArr , que en realidad es abstracta, han
> de funcionar bien con ellas.
>
> Recomiendo a quien esté interesado que se eche un vistazo a este wiki
> [1].
>
> Saludos.
>
> 1. http://opencvlibrary.sourceforge.net/CxCore
>
> El dÃa 18 de julio de 2008 17:37, Roberto Calvo <rocapal en gsyc.es>
> escribió:
>
> Lo reenvio a la lista que creemos que es de interes general
> para empezar
> a usar opencv en la infraestuctura de jde.
>
> Javier ha comentado
>
> [En cuanto a utilizar con funciones de OpenCV imágenes de la
> infraestructura de jde, puedes encapsular una imagen de jde
> con un
> CvMat, que es un tipo de CvArr, parecido a IplImage.
>
> CvMat imgMyColorA;
> char **mycolorA;
> imgMyColorA = cvMat(mycolorAheight, mycolorAwidth, CV_8UC3,
> *mycolorA);
>
> ]
>
> Perfecto, es de gran ayuda Javier. De hecho ya te coronas, si
> nos pegas
> la forma de pasar cvMat a char** ;-)
>
>
> un saludete!!
>
> --
> Roberto Calvo Palomino | Libre Software Engineering
> Lab (GSyC)
> Tel: (+34)-914 888 105 | Universidad Rey Juan Carlos
> rocapal en gsyc.es | Edif. Departamental II -
> Despacho 116
> http://libresoft.urjc.es/ | c/Tulipán s/n 28933 Móstoles
> (Madrid)
>
> GPG-KEY: http://gsyc.es/~rocapal/rocapal.gpg
>
>
>
> ---------- Mensaje reenviado ----------
> From: "Javier MartÃn" <xaverbrennt en yahoo.es>
> To: "Roberto Calvo" <rocapal en gsyc.es>
> Date: Fri, 18 Jul 2008 08:49:14 +0200
> Subject: Re: opencv detector de ejes
> Hola, Roberto:
>
> No tengo nada en esa lÃnea. OpenCV tiene funciones para
> obtener bordes, como cvCanny, por ejemplo, que te saca una
> máscara de bordes. Luego para localizar regiones con más
> densidad de bordes, puedes utilizar por ejemplo una rejilla
> homogénea y contar pÃxeles bordes en cada zona. También se
> podrÃan hacer apaños para buscar regiones con una determinada
> densidad de bordes de tamaño variable. No sé muy bien qué
> quieres hacer.
>
> En cuanto a utilizar con funciones de OpenCV imágenes de la
> infraestructura de jde, puedes encapsular una imagen de jde
> con un CvMat, que es un tipo de CvArr, parecido a IplImage.
>
> CvMat imgMyColorA;
> char **mycolorA;
> imgMyColorA = cvMat(mycolorAheight, mycolorAwidth, CV_8UC3,
> *mycolorA);
>
> No sé si te he ayudado, pero seguimos en contacto.
>
> Saludos.
>
> El dÃa 17 de julio de 2008 23:00, Roberto Calvo
> <rocapal en gsyc.es> escribió:
>
> Buenas, que tal??
>
> Oye, creo que tenÃas algún ejemplo hecho de como
> detectar bordes con
> opencv, a partir de la estructura de imagen que hay en
> jde.
>
> Si tienes algo sobre esto, me harÃas una gran
> favor :-)
>
> un saludete!!
>
> --
> Roberto Calvo Palomino | Libre Software
> Engineering Lab (GSyC)
> Tel: (+34)-914 888 105 | Universidad Rey
> Juan Carlos
> rocapal en gsyc.es | Edif. Departamental
> II - Despacho 116
> http://libresoft.urjc.es/ | c/Tulipán s/n 28933
> Móstoles (Madrid)
>
> GPG-KEY: http://gsyc.es/~rocapal/rocapal.gpg
>
>
>
> _______________________________________________
> Jde-developers mailing list
> Jde-developers en gsyc.es
> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
>
>
>
> _______________________________________________
> Jde-developers mailing list
> Jde-developers en gsyc.es
> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
--
Roberto Calvo Palomino | Libre Software Engineering Lab (GSyC)
Tel: (+34)-914 888 105 | Universidad Rey Juan Carlos
rocapal en gsyc.es | Edif. Departamental II - Despacho 116
http://libresoft.urjc.es/ | c/Tulipán s/n 28933 Móstoles (Madrid)
GPG-KEY: http://gsyc.es/~rocapal/rocapal.gpg
------------ próxima parte ------------
Se ha borrado un mensaje que no está en formato texto plano...
Nombre : no disponible
Tipo : application/pgp-signature
Tamaño : 197 bytes
Descripción: Esta parte del mensaje =?ISO-8859-1?Q?est=E1?= firmada
digitalmente
Url : http://gsyc.escet.urjc.es/pipermail/jde-developers/attachments/20080720/88ef9c50/attachment.pgp
Más información sobre la lista de distribución Jde-developers