<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">Hola,<br>
      <br>
      si miras los cálculos que se hacen en el project son estos:<br>
      <br>
          a = RT*in;<br>
          out = K*a.head(3);<br>
          out(0) = out(0)/out(2);<br>
          out(1) = out(1)/out(2);<br>
          out(2) = 1.0;<br>
      <br>
      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.<br>
      <br>
      Después como tenemos lo de pasar de coordinadas ópticas a
      coordenadas gráficas se hace esto:<br>
      <br>
          double aux = out(0);<br>
          out(0) = out(1);<br>
          out(1) = this-&gt;rows-1-aux;<br>
      <br>
      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).<br>
      <br>
      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í:<br>
      <br>
      /\<br>
      |<br>
      | X<br>
      |     Y<br>
      -----------&gt;<br>
      <br>
      y no el sistema que se utiliza en la mayoría de imágenes que es
      así:<br>
      <br>
           X<br>
      -------------&gt;<br>
      |<br>
      |<br>
      |  Y<br>
      |<br>
      \/<br>
      <br>
      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í:<br>
      <br>
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <a href="http://jderobot.org/Manual-4.3#Progeo_Library">http://jderobot.org/Manual-4.3#Progeo_Library</a><br>
      <br>
      Saludos.<br>
      <br>
      El 05/09/13 19:21, Roberto Calvo escribió:<br>
    </div>
    <blockquote cite="mid:1378401704.28915.24.camel@vega" type="cite">
      <pre wrap="">
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&amp;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?


</pre>
    </blockquote>
    <br>
  </body>
</html>