harris角点检测并精确到亚像素级坐标
harris角点检测并精确到亚像素级坐标,用vs2010和opencv结合编写的程序,能顺利运行
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 32768 2015-04-23 16:55 glDebuggl.exe
文件 516520 2015-04-23 16:55 glDebuggl.ilk
文件 1330176 2015-04-23 16:55 glDebuggl.pdb
文件 550 2015-04-23 16:55 glglDebugcl.command.1.tlog
文件 21494 2015-04-23 16:55 glglDebugCL.read.1.tlog
文件 190 2015-04-23 16:55 glglDebugCL.write.1.tlog
文件 406 2015-04-22 20:27 glglDebuggl.exe.embed.manifest
文件 472 2015-04-22 20:27 glglDebuggl.exe.embed.manifest.res
文件 381 2015-04-23 16:55 glglDebuggl.exe.intermediate.manifest
文件 42 2015-04-23 16:55 glglDebuggl.lastbuildstate
文件 4436 2015-04-23 16:55 glglDebuggl.log
文件 99132 2015-04-23 16:55 glglDebuggl.obj
文件 194 2015-04-22 20:27 glglDebuggl_manifest.rc
文件 2 2015-04-23 16:55 glglDebuglink-cvtres.read.1.tlog
文件 2 2015-04-23 16:55 glglDebuglink-cvtres.write.1.tlog
文件 2 2015-04-23 16:55 glglDebuglink.25124-cvtres.read.1.tlog
文件 2 2015-04-23 16:55 glglDebuglink.25124-cvtres.write.1.tlog
文件 2 2015-04-23 16:55 glglDebuglink.25124.read.1.tlog
文件 2 2015-04-23 16:55 glglDebuglink.25124.write.1.tlog
文件 2844 2015-04-23 16:55 glglDebuglink.command.1.tlog
文件 7680 2015-04-23 16:55 glglDebuglink.read.1.tlog
文件 450 2015-04-23 16:55 glglDebuglink.write.1.tlog
文件 308 2015-04-23 16:55 glglDebugmt.command.1.tlog
文件 206 2015-04-23 16:55 glglDebugmt.read.1.tlog
文件 206 2015-04-23 16:55 glglDebugmt.write.1.tlog
文件 386 2015-04-22 20:27 glglDebug
c.command.1.tlog
文件 178 2015-04-22 20:27 glglDebug
c.read.1.tlog
文件 186 2015-04-22 20:27 glglDebug
c.write.1.tlog
文件 560128 2015-04-23 16:55 glglDebugvc100.idb
文件 921600 2015-04-23 16:55 glglDebugvc100.pdb
............此处省略19个文件信息
#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“ %f %f
“corners[i].xcorners[i].y) ;
}
fprintf(fp“
“) ;
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“ %f %f
“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 glDebuggl.exe
文件 516520 2015-04-23 16:55 glDebuggl.ilk
文件 1330176 2015-04-23 16:55 glDebuggl.pdb
文件 550 2015-04-23 16:55 glglDebugcl.command.1.tlog
文件 21494 2015-04-23 16:55 glglDebugCL.read.1.tlog
文件 190 2015-04-23 16:55 glglDebugCL.write.1.tlog
文件 406 2015-04-22 20:27 glglDebuggl.exe.em
文件 472 2015-04-22 20:27 glglDebuggl.exe.em
文件 381 2015-04-23 16:55 glglDebuggl.exe.intermediate.manifest
文件 42 2015-04-23 16:55 glglDebuggl.lastbuildstate
文件 4436 2015-04-23 16:55 glglDebuggl.log
文件 99132 2015-04-23 16:55 glglDebuggl.obj
文件 194 2015-04-22 20:27 glglDebuggl_manifest.rc
文件 2 2015-04-23 16:55 glglDebugli
文件 2 2015-04-23 16:55 glglDebugli
文件 2 2015-04-23 16:55 glglDebugli
文件 2 2015-04-23 16:55 glglDebugli
文件 2 2015-04-23 16:55 glglDebugli
文件 2 2015-04-23 16:55 glglDebugli
文件 2844 2015-04-23 16:55 glglDebugli
文件 7680 2015-04-23 16:55 glglDebugli
文件 450 2015-04-23 16:55 glglDebugli
文件 308 2015-04-23 16:55 glglDebugmt.command.1.tlog
文件 206 2015-04-23 16:55 glglDebugmt.read.1.tlog
文件 206 2015-04-23 16:55 glglDebugmt.write.1.tlog
文件 386 2015-04-22 20:27 glglDebug
c.command.1.tlog
文件 178 2015-04-22 20:27 glglDebug
c.read.1.tlog
文件 186 2015-04-22 20:27 glglDebug
c.write.1.tlog
文件 560128 2015-04-23 16:55 glglDebugvc100.idb
文件 921600 2015-04-23 16:55 glglDebugvc100.pdb
............此处省略19个文件信息
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)