资源简介
使用opencv来实现的基本图像配准。
对应blog:http://blog.csdn.net/u011630458/article/details/50561188
代码片段和文件信息
#include
#include
using namespace cv;
using namespace std;
#define pointNUmber 3
Mat src;
CvPoint point[pointNUmber];
int width height;
int pointAddr[pointNUmber][2] = {{70 420} {160 90} {390 410}};
float A[3][3] = {{70*70 70 1} {160*160 160 1} {390*390 390 1}};
float B[3] = {420 90 410};
float C[3] = {0 0 0};
CvMat* matA = cvCreateMat(33CV_32FC1);
CvMat* matB = cvCreateMat(31CV_32FC1);
CvMat* matC = cvCreateMat(31CV_32FC1);
void Init(void){
IplImage ip1;
CvScalar s;
int i;
src = Mat(480 480 CV_8UC1 Scalar(000));
ip1 = src;
width = ip1.width;
height = ip1.height;
for(i=0; i point[i].x = pointAddr[i][0];
point[i].y = pointAddr[i][1];
s.val[0] = 255;
circle(src point[i] 3 cvScalar(255255255) -1);
}
imshow(“src“ src);
}
void work(void){
int i;
cvSetData(matA A CV_AUTOSTEP);
cvSetData(matB B CV_AUTOSTEP);
cvSolve(matA matB matC CV_LU);
for(i=0;i<3;i++){
printf(“%f\t“ matC->data.fl[i]);
}
printf(“\n“);
}
void show(void){
int i j;
int result;
CvScalar s;
for(i=0; i result = (int)(i*i*matC->data.fl[0]) + i*matC->data.fl[1] + matC->data.fl[2];
s.val[0] = 255;
if(result < height){
circle(src cvPoint(i result) 3 cvScalar(255255255) -1);
}
}
imshow(“dst“ src);
}
int main(int argc char* argv[]){
int k;
Init();
work();
show();
waitKey(0);
return 0;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 53998 2016-01-21 20:26 3_test\t2.jpg
文件 47789 2016-01-21 14:14 3_test\1.jpg
文件 51199 2016-01-21 14:14 3_test\2.jpg
文件 74015 2016-01-21 14:14 3_test\boge2.jpg
....... 48731 2016-01-21 20:27 3_test\src2.jpg
....... 33536 2016-01-21 20:27 3_test\dst.jpg
文件 66385 2016-01-21 14:14 3_test\boge1.jpg
文件 63792 2016-01-21 20:54 3_test\tmp
文件 50968 2016-01-21 20:25 3_test\t1.jpg
....... 2969 2016-01-21 20:54 3_test\Feature_Desc
....... 1447 2016-01-21 14:14 3_test\1.cpp
目录 0 2016-01-22 10:04 3_test
----------- --------- ---------- ----- ----
494829 12
评论
共有 条评论