[Jderobot] ¿Bug en progeo?
Roberto Calvo
rocapal en gsyc.urjc.es
Vie Sep 6 13:42:45 CEST 2013
Genial Edu, era justo eso :-)
He estado mirando y veo que no hay nada de graphic2optical y viceversa
en las librerías, asi que lo voy a meter dentro de Progeo.
Gracias por la explicación!
El jue, 05-09-2013 a las 20:30 +0200, Eduardo Perdices escribió:
> Hola,
>
> si miras los cálculos que se hacen en el project son estos:
>
> a = RT*in;
> out = K*a.head(3);
> out(0) = out(0)/out(2);
> out(1) = out(1)/out(2);
> out(2) = 1.0;
>
> En tu caso "a" valdría (0,0,800) y out saldría (159.5*800, 119.5*800,
> 800), que al dividir por 800 te saldría el número bien.
>
> Después como tenemos lo de pasar de coordinadas ópticas a coordenadas
> gráficas se hace esto:
>
> double aux = out(0);
> out(0) = out(1);
> out(1) = this->rows-1-aux;
>
> Y aquí out valdría (119.5, rows - 1 - 159.5), si en tu caso tienes el
> 240, te sale el resultado que has puesto. La cosa es que después de
> hacer un project tienes que hacer la operación inversa, pasar de nuevo
> de coordenadas gráficas a coordenadas ópticas y de nuevo te saldrá el
> (159.9, 119.5).
>
> Al hacer un backproject es lo contrario, primero hacer el cambio de
> coordenadas y luego llamas a backproject. Esto se hace así porque en
> progeo los valores en 2D que se toman como entrada y salida tienen
> como sistema de coordenadas el sistema x-y típico de las gráficas,
> algo así:
>
> /\
> |
> | X
> | Y
> ----------->
>
> y no el sistema que se utiliza en la mayoría de imágenes que es así:
>
> X
> ------------->
> |
> |
> | Y
> |
> \/
>
> Yo particularmente creo que habría que trabajar directamente con
> coordenadas ópticas, puesto que es lo que se hace en la mayoría de los
> sitios, pero ahora mismo Progeo funciona como digo. Viene esto mejor
> explicado aquí:
>
> http://jderobot.org/Manual-4.3#Progeo_Library
>
> Saludos.
>
> El 05/09/13 19:21, Roberto Calvo escribió:
>
> > Hola,
> >
> > Os quiero comentar un comportamiento que me estoy encontrando con
> > Progeo, a ver si a alguno más os ha pasado o es un bug de la librería.
> >
> > Parto de la siguiente configuración de la cámara de Progeo:
> >
> > Camera:
> >
> > Position: (X,Y,Z,H)=(0,0,0,0,0,0,0,0)
> > Focus of Attention: (x,y,z,h)=(0,0,0,0,0,0,0,0)
> >
> > Focus DistanceX(vertical): 272,2 mm
> > Focus DistanceY(horizontal): 272,2 mm
> > Skew: 65,75091
> > Optical Center: (x,y)=(159,5 , 119,5)
> >
> > K Matrix:
> > 272.171 0 159.5
> > 0 272.171 119.5
> > 0 0 1
> >
> > R&T Matrix:
> > 1 0 0 0
> > 0 1 0 0
> > 0 0 1 0
> > 0 0 0 1
> >
> >
> > Hasta aquí parece estar todo bien. También funciona bien el hecho de
> > usar cualquier pixel, pasar a punto 3D y ese mismo punto 3D o cualquiera
> > de su recta hacer al project y que vuelta a dar el mismo pixel.
> >
> > El caso es que estoy teniendo problemas con el centro óptico.
> > Teóricamente cualquier punto 3D que sea del estilo (0, 0, Z) debería
> > hacer el project al centro óptico que se corresponde con el centro de la
> > imágen. El centro óptico es (159.5,119.5).
> >
> > Sin embargo al hacer el project del punto 3D (0,0,800) me devuelve el
> > píxel (119.5, 79.5). No sé si se me está escapando algo, o es fruto de
> > algún bug o problema de memoria.
> >
> > ¿Alguien más está trabajando con la librería de Progeo nueva?
> >
> >
>
> _______________________________________________
> Jde-developers mailing list
> Jde-developers en gsyc.es
> http://gsyc.escet.urjc.es/cgi-bin/mailman/listinfo/jde-developers
--
Roberto Calvo Palomino | Robotics Lab (GSyC)
R&D Android Mobile Engineer | Universidad Rey Juan Carlos
Twitter: @rocapal
Linkedin: http://www.linkedin.com/in/rocapal
More information about the Jde-developers
mailing list