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的视觉工作流",欢迎前往阅读。

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

相关推荐
fthux2 小时前
装闭 RenoPit 源码解析(09):AnalysisEngine装修闭坑分析主流程
人工智能·ai·开源·github·open source·renopit
敏编程2 小时前
开源项目 NextBand:探索融合健康传感、语音交互与 AI Agent 的下一代可穿戴设备
人工智能
GreenTea2 小时前
深度解读 Anthropic 多智能体报告:更强的模型 ≠ 更好的协调
前端·后端·算法
ovO2 小时前
我按下“发送”之后:DeepSeek Harness 如何把一次请求变成 1,177 个增量片段
人工智能·开源·deepseek
昨日之日20062 小时前
LTX-2.5:更清晰、更可控、同步音画、多镜头连贯的AI视频神器
人工智能·音视频
九硕智慧建筑一体化厂家2 小时前
数字化管控落地,直流照明构筑安全照明体系
运维·人工智能·笔记·安全·智慧城市
江厌012 小时前
本地部署DeepSeek显卡怎么选?我把显存计算公式和实测记录写下来了
人工智能·百度·联想工作站·代理商推荐·渠道对比·工作站
小席是个热心肠3 小时前
AI相关的自我学习
java·人工智能·学习
FII工业富联科技服务3 小时前
工业AI自治的演进趋势:从内容生成到Agent驱动的工厂运营范式转变
人工智能
fqq33 小时前
力扣刷题前置Java语法
算法·leetcode·职场和发展