libcvd-members
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[libcvd-members] libcvd/cvd camera.h


From: Dr. JJN
Subject: [libcvd-members] libcvd/cvd camera.h
Date: Mon, 30 Apr 2007 16:32:20 +0000

CVSROOT:        /sources/libcvd
Module name:    libcvd
Changes by:     Dr. JJN <jjneubert>     07/04/30 16:32:20

Modified files:
        cvd            : camera.h 

Log message:
        

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/libcvd/cvd/camera.h?cvsroot=libcvd&r1=1.17&r2=1.18

Patches:
Index: camera.h
===================================================================
RCS file: /sources/libcvd/libcvd/cvd/camera.h,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -b -r1.17 -r1.18
--- camera.h    23 Apr 2007 15:50:49 -0000      1.17
+++ camera.h    30 Apr 2007 16:32:19 -0000      1.18
@@ -179,6 +179,8 @@
     inline TooN::Matrix<2,2> get_derivative(const TooN::Vector<2>& x) const;
 
     inline TooN::Matrix<2,2> get_inv_derivative() const;
+    inline TooN::Matrix<2,2> get_inv_derivative(const TooN::Vector<2>& x) 
const;
+
     /// Get the motion of a point with respect to each of the internal camera 
parameters
     inline TooN::Matrix<num_parameters,2> get_parameter_derivs() const ;
 
@@ -451,6 +453,7 @@
 }
 
 
+
 TooN::Matrix<2,2> Camera::Quintic::get_inv_derivative() const {
   TooN::Matrix<2,2> result;
   double temp1=my_last_camframe*my_last_camframe;
@@ -473,6 +476,30 @@
   return result;
 }
 
+TooN::Matrix<2,2> Camera::Quintic::get_inv_derivative(const TooN::Vector<2>& 
x) const
+{
+
+  TooN::Matrix<2,2> result;
+  double temp1=x*x;
+  double temp2=my_camera_parameters[5]*temp1;
+  double temp3=2.0*(my_camera_parameters[4]+2.0*temp2);
+
+  Identity(result,1+temp1*(my_camera_parameters[4]+temp2));
+
+  result[0][0] +=  x[1]*x[1]*temp3;
+  result[0][1]  =-(temp3*x[0]*x[1]);
+  
+  result[1][1] +=  x[0]*x[0]*temp3;
+  result[1][0]  =-(temp3*x[0]*x[1]);
+  
+  (result.T())[0] *= my_camera_parameters[1];
+  (result.T())[1] *= my_camera_parameters[0];
+
+  result /= (result[0][0]*result[1][1] - result[1][0]*result[0][1]);
+  
+  return result;
+
+}
 
 TooN::Matrix<2,2> Camera::Quintic::get_derivative(const TooN::Vector<2>& x) 
const {
     TooN::Matrix<2,2> result;




reply via email to

[Prev in Thread] Current Thread [Next in Thread]