C# 基于OpenCv的视觉工作流-章38-BF特征匹配

C# 基于OpenCv的视觉工作流-章38-BF特征匹配

本章目标:
一、 暴力特征匹配原理;
二、 创建匹配器;
三、 特征匹配;
四、 匹配点筛选;
五、绘制匹配点;

特征匹配首先获取两幅图像的特征点与描述子,然后再对描述子进行匹配;特征匹配有多种,本章介绍暴力特征匹配。

一、暴力特征匹配原理

关于特征点与描述子的获取,章24-SURF特征点已介绍,不再详述。详细原理,见文末链接


二、 创建匹配器

OpenCv 暴力特征匹配可如下创建

BFMatcher matcher = new BFMatcher(NormTypes.L1, true);

其中:参数1,为计算距离方式;

参数2,为是否进行交叉匹配;

三、 特征匹配;

OpenCv 暴力特征匹配可如下使用

DMatch\[\] matches = matcher.Match(descriptors1, descriptors2);

其中:参数1,为查找图(模板小图)的描述子;

参数2,为待匹配图(大图)的描述子;

注:匹配返回的结果中,有匹配的距离,根据距离可筛选符合要求的特征点

四、 匹配点筛选

通过C#相应语法查找即可

DMatch\[\] goodMatches = matches.Where((m, i) => m.Distance < distance).ToArray();

其中:参数distance,为指定距离值;

说明:匹配得到的距离,值越小越相似,所以取小于指定距离值的点,作为最终的匹配点。

五、绘制匹配点

OpenCv 绘制匹配点可如下使用

Mat imgMatches = new Mat();

Cv2.DrawMatches(image1, keyPoints1, Image2, keyPoints2, goodMatches, imgMatches);

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

参数2,为输入图像1特征点;

参数3,为输入图像2;

参数4,为输入图像2特征点;

参数5,为匹配特征点;

参数6,为输出图像;

效果如下图

参考链接

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

"VisionTool 探迹"免费视觉工具

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

版本已更新为V1.0.0.2,更新内容如下:

1.增加点查找;

2.增加交点查找;

3.增加轮廓点距,实现两轮廓各点间距测量;

4.增加点-点间距,实现独立点与独立点的距离测量;

5.增加点-线间距,实现独立点与独立线的距离测量;

6.增加线-线间距,实现独立线与独立线的距离测量;

7.增加线-线角度,实现独立线与独立线的角度测量;

8.增加轮廓段距,实现两轮廓的分段间距测量;

9.缺陷检测模块中,修复ROI显示功能;

"VisionTool Halcon"付费视觉工具

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

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

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

相关推荐
D2aZXN3FhrDa7e21215 分钟前
佛山乐从低预算实体店如何选择?看美诚AI自动化获客方案
运维·人工智能·自动化·佛山美诚科技有限公司
林泽毅29 分钟前
PyTRIO:当强化学习不再需要本地GPU
人工智能·python·深度学习·机器学习
颜酱32 分钟前
# 02 | 搭骨架:用 LangGraph 编排 12 步工作流(思路)
前端·人工智能·后端
颜酱33 分钟前
02 | 搭骨架:用 LangGraph 编排 12 步工作流
前端·人工智能·后端
码上解惑35 分钟前
从 Dify 工作流说起:常用节点怎么选、怎样组合?
java·人工智能·ai·agent·dify·智能体·spring ai
小陈phd39 分钟前
QAnything 阅读优化策略05——检索
人工智能·python·机器学习
稚南城才子,乌衣巷风流1 小时前
ST 表(Sparse Table)算法详解:原理、实现与应用
算法
hold?fish:palm1 小时前
9 找到字符串中所有字母异位词
c++·算法·leetcode
zhangfeng11331 小时前
CVOCA 卷积模型,《Nature》子刊 特征提取技术突破性研究的综合分析报告
人工智能