C# 基于OpenCv的视觉工作流-章22-Harris角点

C# 基于OpenCv的视觉工作流-章22-Harris角点

本章目标:
一、图像特征;
二、角点数学原理;
三、角点检测;


一、图像特征;

角点属于图像特征的一种,在进行角点检测前,可先了解一下图像特征。

特征的唯一性、可追踪性、可比较性,在模板匹配中常用来进行目标定位。

二、角点数学原理

如下图,简易理解:

图1,卷积核在平坦区扫描,XY方向灰度梯度变化不大,不属特征;

图2,卷积核在边缘区扫描,仅一个方向灰度梯度变化不大,另一个方向变化大,属边缘;

图3,卷积核在拐角处扫描,两个方向灰度梯度变化都大,属角点;

详细数学推导,看文末链接

三、角点检测;

1、提取角点

//角点检测,每一个像素都可以计算出一个角点响应值

OpenCv角点检测可如下使用

Mat cornerDst = new Mat();

Cv2.CornerHarris(image, cornerDst, blockSize, ksize, k);

其中:参数1,为输入图像;

参数2,为输出图像;

参数3,为检测窗口大小;

参数4,为卷积核;

参数5,为权重系数;

2、取最大角点值

OpenCv角点最大值可如下使用

Cv2.MinMaxLoc(cornerDst, out double minVal, out double maxVal, out OpenCvSharp.Point minLoc, out OpenCvSharp.Point maxLoc, new Mat());

其中:参数1,为输入角点;

参数2,为输出最小值;

参数3,为输出最大值;

参数4,为输出最小值坐标;

参数5,为输出最大值坐标;

3、筛选角点

以自定义系数(一般为0.01)*最大角点值,作为筛选条件。

效果如下图

参考链接

https://www.bilibili.com/video/BV1RFtpeJE6h?spm_id_from=333.788.videopod.episodes\&vd_source=3f9438f03abb9d3e91fda0640164d626\&p=68

"VisionTool 探迹"免费视觉工具

下载地址:https://pan.baidu.com/s/11tktKOSnepLNIEqNbvnv6w?pwd=qv5i

"VisionTool Halcon"付费视觉工具

下载地址:https://pan.baidu.com/s/1v832KTonDYS6oNnWG2iZtQ?

对应系列文章"C# 基于Halcon的视觉工作流",欢迎前往阅读。

上述内容需要一定的技术功底,本章至此已结束,欢迎阅读下章,谢谢!

相关推荐
卷福同学31 分钟前
不用服务器,不用配环境,我10分钟上线了一个AI Agent
人工智能·后端·算法
码兄科技2 小时前
Java AI智能体开发实战:从零构建智能对话系统指南
java·开发语言·人工智能
Zik----2 小时前
CCswitch-code
人工智能
至乐活着3 小时前
深入解析跳表SkipList:原理、实现与性能优化实战
数据结构·算法·跳表·skiplist·java实现
AI科技星3 小时前
全域谱分析:无穷维超复数信息场分形统一场论 ——自然、量子、金融多重分形第一性原理完整体系(中英双语终稿)
人工智能·机器学习·金融·乖乖数学·全域数学
stormzhangV4 小时前
为什么你的 AI 像智障
人工智能
Jerry4 小时前
LeetCode 383. 赎金信
算法
ai产品老杨4 小时前
H264 H265视频分析常见问题和排查清单
人工智能·算法·音视频
项目经理老王4 小时前
OpenClaw无捆绑安装包,安全纯净版AI助手部署
人工智能·安全
Jerry4 小时前
LeetCode 454. 四数相加 II
算法