00001
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef _GAN_AFFINE33_FIT_H
00030 #define _GAN_AFFINE33_FIT_H
00031
00032 #include <gandalf/linalg/3vector.h>
00033 #include <gandalf/linalg/3x3matrix.h>
00034 #include <gandalf/linalg/2x3matrix.h>
00035 #include <gandalf/linalg/pseudo_inverse.h>
00036 #include <gandalf/vision/homog33_fit.h>
00037
00038 #ifdef __cplusplus
00039 extern "C" {
00040 #endif
00041
00060 Gan_PseudoInverseStruct *gan_affine33_init ( Gan_PseudoInverseStruct *pis );
00061
00072 void gan_affine33_free ( Gan_PseudoInverseStruct *pis );
00073
00074 Gan_Bool gan_affine33_increment_p ( Gan_PseudoInverseStruct *pis,
00075 Gan_Vector3 *X, Gan_Vector3 *x,
00076 double scale, int *eq_count );
00077 Gan_Bool gan_affine33_increment_le ( Gan_PseudoInverseStruct *pis,
00078 Gan_Vector3 *X, Gan_Vector3 *l,
00079 double scale, int *eq_count );
00080 Gan_Bool gan_affine33_solve ( Gan_PseudoInverseStruct *pis, int eq_count,
00081 Gan_Matrix23 *P );
00082 Gan_Bool gan_affine33_fit ( Gan_Homog33Match *match, unsigned nmatches,
00083 Gan_Matrix23 *H );
00084
00096 Gan_Bool gan_affine33_reset ( Gan_PseudoInverseStruct *pis );
00097
00106 #ifdef __cplusplus
00107 }
00108 #endif
00109
00110 #endif