00001
00002
00003
00004
00005
00025
00026
00027
00028
00029
00030
00031 #ifndef AR_PARAM_H
00032 #define AR_PARAM_H
00033 #ifdef __cplusplus
00034 extern "C" {
00035 #endif
00036
00037
00038
00039
00040
00041 #include <AR/config.h>
00042
00043
00044
00045
00046
00066 typedef struct {
00067 int xsize, ysize;
00068 double mat[3][4];
00069 double dist_factor[4];
00070 } ARParam;
00071
00072 typedef struct {
00073 int xsize, ysize;
00074 double matL[3][4];
00075 double matR[3][4];
00076 double matL2R[3][4];
00077 double dist_factorL[4];
00078 double dist_factorR[4];
00079 } ARSParam;
00080
00081
00082
00083
00084
00085
00086
00087
00088
00100 int arParamGet( double global[][3], double screen[][2], int data_num,
00101 double mat[3][4] );
00102
00112 int arParamDecomp( ARParam *source, ARParam *icpara, double trans[3][4] );
00113
00123 int arParamDecompMat( double source[3][4], double cpara[3][4], double trans[3][4] );
00124
00139 int arParamIdeal2Observ( const double dist_factor[4], const double ix, const double iy,
00140 double *ox, double *oy );
00141
00156 int arParamObserv2Ideal( const double dist_factor[4], const double ox, const double oy,
00157 double *ix, double *iy );
00158
00169 int arParamChangeSize( ARParam *source, int xsize, int ysize, ARParam *newparam );
00170
00180 int arParamSave( char *filename, int num, ARParam *param, ...);
00181
00192 int arParamLoad( const char *filename, int num, ARParam *param, ...);
00193
00201 int arParamDisp( ARParam *param );
00202
00203
00204
00205 int arsParamChangeSize( ARSParam *source, int xsize, int ysize, ARSParam *newparam );
00206
00207 int arsParamSave( char *filename, ARSParam *sparam );
00208
00209 int arsParamLoad( char *filename, ARSParam *sparam );
00210
00211 int arsParamDisp( ARSParam *sparam );
00212
00213 int arsParamGetMat( double matL[3][4], double matR[3][4],
00214 double cparaL[3][4], double cparaR[3][4], double matL2R[3][4] );
00215
00216 #ifdef __cplusplus
00217 }
00218 #endif
00219 #endif