13基于opencv的角点检测cornerHairris

本文详细介绍并展示了如何使用OpenCV中的cornerHarris函数进行角点检测,包括函数参数解析及示例代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

角点检测cornerHairris

一、cornerHarris()函数

1.1 cornerHarris()函数各参数详解

voidcornerHarris(InputArray src,OutputArray dst,int blockSize,int ksize,double k,intborderType =BORDER_DEFAULT)

Ø  第一个参数,InputArray类型的src,输入图像,即源图像,填Mat类的对象即可,且需为单通道8位或者浮点型图像。

Ø  第二个参数,OutputArray类型的dst,函数调用后的运算结果存在这里,即这个参数用于存放Harris角点检测的输出结果,和源图片有一样的尺寸和类型。

Ø  第三个参数,int类型的blockSize,表示邻域的大小,更多的详细信息在cornerEigenValsAndVecs()中有讲到。

Ø  第四个参数,int类型的ksize,表示Sobel()算子的孔径大小。

Ø  第五个参数,double类型的k,Harris参数。

Ø 第六个参数,int类型的borderType,图像像素的边界模式,注意它有默认值BORDER_DEFAULT。更详细的解释,参考borderInterpolate()函数。

 

1.2调用示例 

Mat ScrImage, OutImage, OutImage1, OutImage2, OutImage3;

ScrImage = imread("E:\\1TJQ\\Opencv\\Images\\image1.jpg");

cornerHarris(ScrImage, OutImage1, 2, 3, 0.01);//角点检测

   threshold(OutImage1,OutImage2, 0.001, 255, THRESH_BINARY);

imshow("【角点检测(二值化)",OutImage2);

 

二、完整程序

#include <opencv2/core/core.hpp>

#include <opencv2/imgproc/imgproc.hpp>

#include <opencv2/opencv.hpp>

 

#include <vector>

#include <cstdio>

 

using namespacestd;

using namespacecv;

 

int main()

{

   Mat ScrImage, ScrImgaeCopy1, OutImage, OutImage1, OutImage2;

   ScrImage = imread("E:\\1TJQ\\Opencv\\Images\\image1.jpg",0); //读入图像 \\image1.jpg brownbug.jpg whitebug.jpg

   imshow("【原图】", ScrImage);

 

   cornerHarris(ScrImage,OutImage1, 2, 3, 0.01);//角点检测

   threshold(OutImage1,OutImage2, 0.001, 255, THRESH_BINARY);

 

   imshow("【角点检测(二值化)", OutImage2);

 

   waitKey(0);

   return NULL;

}


参考内容:

http://www.cnblogs.com/mq0036/p/5902104.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三公子Tjq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值