opencv3/C++角点检测goodFeaturesToTrack()
来源:互联网 发布:intouch组态软件下载 编辑:程序博客网 时间:2024/05/16 09:00
goodFeaturesToTrack()角点检测参数说明:
void goodFeaturesToTrack( InputArray image, //输入单通道8位或32位浮点型图像。OutputArray corners,//输出检测到的角点int maxCorners, //要返回的最大角点数double qualityLevel, //图像角点的品质因子double minDistance,//角点之间的最小距离(删除该范围内更强的角点)InputArray mask = noArray(), //感兴趣区int blockSize = 3,//计算协方差矩阵时的窗口大小bool useHarrisDetector = false, //是否使用Harris角点检测(默认计算shi-tomasi角点)double k = 0.04 //Harris角点检测需要的k值);
角点检测示例:
#include<opencv2/opencv.hpp>using namespace cv;void trackBar(int, void*);int thre = 0;Mat src, dst;int main(){ src = imread("E:/image/bdb.jpg"); if (src.empty()) { printf("can not load image \n"); return -1; } namedWindow("input"); namedWindow("output"); imshow("input", src); cvtColor(src, dst, COLOR_BGR2GRAY); destroyWindow("output"); namedWindow("output"); createTrackbar("threshold:","output",&thre,250,trackBar); waitKey(); return 0;}void trackBar(int, void*){ std::vector<Point2f> corners; goodFeaturesToTrack(dst,corners, thre, 0.01, 10, Mat()); for (int i = 0; i < corners.size(); i++) { circle(src, corners[i], 2, Scalar(0,255,255), 2); } imshow("output", src);}
阅读全文