60 homography(
float u1,
float v1,
float up1,
float vp1,
61 float u2,
float v2,
float up2,
float vp2,
62 float u3,
float v3,
float up3,
float vp3,
63 float u4,
float v4,
float up4,
float vp4);
68 bool estimate(
float u1,
float v1,
float up1,
float vp1,
69 float u2,
float v2,
float up2,
float vp2,
70 float u3,
float v3,
float up3,
float vp3,
71 float u4,
float v4,
float up4,
float vp4);
74 void set_match_number(
int n);
75 void add_match(
float u,
float v,
float up,
float vp);
76 void release_matches(
void);
84 void transform_point(
float u,
float v,
float * up,
float * vp);
85 void transform_point(
double u,
double v,
double * up,
double * vp);
87 float cvmGet(
const int i,
const int j);
88 void cvmSet(
const int i,
const int j,
const float val);
89 void cvmSet(
const int i,
const int j,
const double val);
92 friend void cvmSet(
const homography * H,
const int i,
const int j,
const float val);
93 friend void cvmSet(
const homography * H,
const int i,
const int j,
const double val);
96 void initialize(
void);
98 void add_match(CvMat * AA, CvMat * B,
int point_index,
99 float u,
float v,
float up,
float vp);
101 CvMat * AA, * B, * X;
102 CvMat * AA_n, * B_n, * X_n;
103 int match_number, actual_match_number;
110 return data.fl[3 * i + j];
115 data.fl[3 * i + j] = val;
120 data.fl[3 * i + j] = (float)val;
125 assert (H->rows == 3 && H->cols == 3);
127 return H->data.fl[3 * i + j];
132 assert (H->rows == 3 && H->cols == 3);
134 H->data.fl[3 * i + j] = val;
139 assert (H->rows == 3 && H->cols == 3);
141 H->data.fl[3 * i + j] = (float)val;
144 #endif // HOMOGRAPHY_H