资源简介
harris角点检测并精确到亚像素级坐标,用vs2010和opencv结合编写的程序,能顺利运行
代码片段和文件信息
#include
#include
#include
#include
int main(int argc char** argv)
{
FILE* fp = fopen(“result.txt““w+“ ) ;
const char* filename = “pic.jpg“ ;
//const char* windowname = “http://blog.csdn.net/moc062066“ ;
//img AND img_copy is the sameuse to draw different result
IplImage* img = cvLoadImage(filenameCV_LOAD_IMAGE_COLOR );
IplImage* img_copy = cvCloneImage( img ) ;//a copy of img
IplImage* img_gray = cvCreateImage(cvGetSize( img )IPL_DEPTH_8U 1) ;
IplImage* eig_image = cvCreateImage(cvGetSize( img )IPL_DEPTH_32F 1);
IplImage* temp_image = cvCloneImage( eig_image ) ;
cvCvtColor(imgimg_grayCV_BGR2GRAY);
const int MAX_CORNERS = 576 ; //estimate a corner number
CvPoint2D32f* corners = new CvPoint2D32f[ MAX_CORNERS ];
int corner_count = MAX_CORNERS; //检测到的角点数
double quality_level = 0.1; //threshold for the eigenvalues阈值的特征值
double min_distance =12.1; //mininum distance between two corners两个角点的最小距离
cvGoodFeaturesToTrack(
img_gray
eig_image
temp_image
corners
&corner_count
quality_level
min_distance
);
//draw corners from cvGoodFeaturesToTrack on “img“
for (int i = 0 ; i < corner_count ; ++i){
cvLine(
img
cvPoint(corners[i].xcorners[i].y)
cvPoint(corners[i].xcorners[i].y)
CV_RGB(25500)
5
);
fprintf(fp“\t%f\t%f\n“corners[i].xcorners[i].y) ;
}
fprintf(fp“\n\n\n\n\n“) ;
int half_win_size = 3;//搜索窗口的一半尺寸the window size will be 3+1+3=7
int iteration = 20;
double epislon = 0.1;
cvFindCornerSubPix(
img_gray
corners
corner_count
cvSize(half_win_sizehalf_win_size)
cvSize(-1-1)//死区的一半尺寸,(-1,-1)表示没有死区no ignoring the neighbours of the center corner
cvTermCriteria(CV_TERMCRIT_ITER|CV_TERMCRIT_EPSiterationepislon)
);
//draw subpix corners on “img_copy“
for (int i=0;i cvLine(
img_copy
cvPoint(corners[i].xcorners[i].y)
cvPoint(corners[i].xcorners[i].y)
CV_RGB(25500)
5
);
fprintf(fp“\t%f\t%f\n“corners[i].xcorners[i].y) ;
}
cvNamedWindow(“cvFindCornerSubPix“ CV_WINDOW_AUTOSIZE );
cvShowImage( “cvFindCornerSubPix“ img );
cvNamedWindow(“cvGoodFeaturesToTrack“ CV_WINDOW_AUTOSIZE );
cvShowImage( “cvGoodFeaturesToTrack“ img_copy );
cvWaitKey(0);
cvReleaseImage(&img_gray);
cvReleaseImage(&img);
cvReleaseImage(&img_copy);
cvDestroyWindow(“cvGoodFeaturesToTrack“);
cvDest
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 32768 2015-04-23 16:55 gl\Debug\gl.exe
文件 516520 2015-04-23 16:55 gl\Debug\gl.ilk
文件 1330176 2015-04-23 16:55 gl\Debug\gl.pdb
文件 550 2015-04-23 16:55 gl\gl\Debug\cl.command.1.tlog
文件 21494 2015-04-23 16:55 gl\gl\Debug\CL.read.1.tlog
文件 190 2015-04-23 16:55 gl\gl\Debug\CL.write.1.tlog
文件 406 2015-04-22 20:27 gl\gl\Debug\gl.exe.em
文件 472 2015-04-22 20:27 gl\gl\Debug\gl.exe.em
文件 381 2015-04-23 16:55 gl\gl\Debug\gl.exe.intermediate.manifest
文件 42 2015-04-23 16:55 gl\gl\Debug\gl.lastbuildstate
文件 4436 2015-04-23 16:55 gl\gl\Debug\gl.log
文件 99132 2015-04-23 16:55 gl\gl\Debug\gl.obj
文件 194 2015-04-22 20:27 gl\gl\Debug\gl_manifest.rc
文件 2 2015-04-23 16:55 gl\gl\Debug\li
文件 2 2015-04-23 16:55 gl\gl\Debug\li
文件 2 2015-04-23 16:55 gl\gl\Debug\li
文件 2 2015-04-23 16:55 gl\gl\Debug\li
文件 2 2015-04-23 16:55 gl\gl\Debug\li
文件 2 2015-04-23 16:55 gl\gl\Debug\li
文件 2844 2015-04-23 16:55 gl\gl\Debug\li
文件 7680 2015-04-23 16:55 gl\gl\Debug\li
文件 450 2015-04-23 16:55 gl\gl\Debug\li
文件 308 2015-04-23 16:55 gl\gl\Debug\mt.command.1.tlog
文件 206 2015-04-23 16:55 gl\gl\Debug\mt.read.1.tlog
文件 206 2015-04-23 16:55 gl\gl\Debug\mt.write.1.tlog
文件 386 2015-04-22 20:27 gl\gl\Debug\rc.command.1.tlog
文件 178 2015-04-22 20:27 gl\gl\Debug\rc.read.1.tlog
文件 186 2015-04-22 20:27 gl\gl\Debug\rc.write.1.tlog
文件 560128 2015-04-23 16:55 gl\gl\Debug\vc100.idb
文件 921600 2015-04-23 16:55 gl\gl\Debug\vc100.pdb
............此处省略19个文件信息
- 上一篇:非均匀有理B样条.皮尔
- 下一篇:连接wifi程序
评论
共有 条评论