【opencv练习39 - Harris角点】
2016-09-14 22:40
211 查看
/******************************************************************* 测试程序 Harris角点 时间:2016年9月6日 ********************************************************************/ Mat src, src_gray; int thresh = 200; int max_thresh = 255; const char* source_window = "Source image"; const char* corners_window = "Corners detected"; /// Function header void cornerHarris_demo( int, void* ); int main(void) { //加载&灰度化 src = imread( "Image.jpg", 1 ); cvtColor( src, src_gray, COLOR_BGR2GRAY ); namedWindow( source_window, WINDOW_AUTOSIZE ); createTrackbar( "Threshold: ", source_window, &thresh, max_thresh, cornerHarris_demo ); imshow( source_window, src ); cornerHarris_demo( 0, 0 ); waitKey(0); return(0); } //* @brief 【执行角点检测,对可能的角点绘制圈】 //* Executes the corner detection and draw a circle around the possible corners void cornerHarris_demo( int, void* ) { Mat dst, dst_norm, dst_norm_scaled; dst = Mat::zeros( src.size(), CV_32FC1 ); //【检测子参数】 int blockSize = 2; //块大小 int apertureSize = 3; //孔径 double k = 0.04; //【检测角点】 //【计算每一像素的Harris cornerness 测度】 cornerHarris( src_gray, dst, blockSize, apertureSize, k, BORDER_DEFAULT ); //【归一化】 normalize( dst, dst_norm, 0, 255, NORM_MINMAX, CV_32FC1, Mat() ); convertScaleAbs( dst_norm, dst_norm_scaled ); //【绘制角点圈】 for( int j = 0; j < dst_norm.rows ; j++ ) { for( int i = 0; i < dst_norm.cols; i++ ) { if( (int) dst_norm.at<float>(j,i) > thresh ) { circle( dst_norm_scaled, Point( i, j ), 5, Scalar(255), 2, 8, 0 ); } } } namedWindow( corners_window, WINDOW_AUTOSIZE ); imshow( corners_window, dst_norm_scaled ); }
相关文章推荐
- 【opencv练习02-Mat的初始化、两种复制】
- OpenCV教程(44) harris角的检测(2)
- matlab练习程序(Harris角点检测)
- opencv练习:将两幅同样大小的图像想减并显示结果
- 【opencv练习08 - 改变图像亮度】
- No rule to make target 'usr/lib/x86_64-linux-gnu/libcuda.so' Linux下安装OpenCV时 make编译出现的Bug
- Java程序练习-Peter's smokes
- opencv学习系列:实例练习,含多个工程实例
- opencv学习系列:实例练习(含多个实例)
- Fedora14(linux)下qt配置OpenCV、测试代码 及qt无法启动终端模拟器'xterm' 的解决方案
- Opencv中调用FileStorage出现错误“Stack around the variable '*' was corrupted.”
- 【opencv练习03-Mat相关操作】
- OpenCV教程(45) harris角的检测(3)
- opencv学习(四十四)之图像角点检测Harris
- 如何解决opencv2 error C4996: 'fopen'
- O'Reilly Learning OpenCV
- opencv2.0移植完后使用中cxtypes.h出现warning: incompatible implicit declaration of built-in function 'lrint‘解决
- 【opencv练习14 - 模糊图像 】
- shell整理(39)====shell改变文本练习
- OpenCV之十六 OpenCV角点检测之Harris角点检测