OpenCV2编程手册笔记之 8.2检测Harris角点

    在检测兴趣点的时候,角点可以作为一个有趣的方案。这就是因为角点在图像中几乎随处可见。

    在这里,我们将用Harris角点检测方案进行检测。

    我们在这里选择声明一个HarrisDetector类进行角点的检测,我们先说一下它的代码实现。


    第一部分是计算Harris值

//Harris 计算
	cv::cornerHarris(image, cornerStrength,
		neighbourhood,// neighborhood size
		aperture,     // 孔径大小
		k);           // Harris 参数
	//内部阈值计算
	//配合函数minMaxLoc设置的变量,但后续并没有用处
	double minStrength;
	cv::minMaxLoc(cornerStrength, &minStrength, &maxStrength);
	// 局部最大值检测
	cv::Mat dilated;
	cv::dilate(cornerStrength, dilated, cv::Mat());
	cv::compare(cornerStrength, dilated, localMax, cv::CMP_EQ);

    为了检测Harris角点,我们先计算每个像素处的Harris值,这里用到的OpenCV集成函数有:

void cornerHarris( InputArray src, OutputArray dst, int blockSize,
                                int ksize, double k,
                                int borderType = BORDER_DEFAULT );
    cornerHarris函数用来检测角点并返回储存着角点信息的dst图像矩阵

    第一个参数用来设定输入图像

    第二个参数返回信息矩阵

    第三个参数为窗口大小,也就是Harris角点检测时所用到的窗口的大小

    第四个参数为核大小,由于这里我们采用的是Sobel算法检测梯度,因此这个是Sobel中需要的核检测大小

    第五个参数为计算窗口中是否存在R值时所用的计算参数,一般可以选择0.01

    第六个参数为插值方法

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值