[Jderobot] ¿Bug en progeo?
Eduardo Perdices
eperdices en gsyc.es
Jue Sep 5 20:30:44 CEST 2013
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?
>
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: http://gsyc.escet.urjc.es/pipermail/jde-developers/attachments/20130905/ba113be1/attachment.htm
More information about the Jde-developers
mailing list