Opencv之利用matchshape算子实现简单的形状匹配

本文介绍了如何使用OpenCV的matchShape算子进行形状匹配。通过将待识别图像和模板图像转换为灰度并进行阈值处理,然后找到轮廓,最后通过比较轮廓的Hu不变矩来确定匹配度。匹配分值越小,轮廓越相似。matchShapes函数适用于识别大物体的形状,但对纹理复杂的图像识别率较低。文中还提供了一个利用该方法寻找圆形的示例。
摘要由CSDN通过智能技术生成

Opencv之利用matchshape算子实现简单的形状匹配

算子:

matchShapes( InputArray contour1, InputArray contour2, int method, double parameter )

(1)参数1是待匹配轮廓或者灰度图像

(2)参数2同参数1

(3)比较参数1和2相似度的方法,opencv提供了三种如下:

                CV_CONTOURS_MATCH_I1
                CV_CONTOURS_MATCH_I2
                CV_CONTOURS_MATCH_I3

(4)参数4为目前还不支持,使用时赋个0就ok。

针对三种匹配方法进行比较,结果如下:

  • 3
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
OpenCV(Open Source Computer Vision Library)是一个广泛使用的计算机视觉库,提供了许多强大的功能,包括模型匹配。模型匹配主要是为了在图像中寻找预定义的对象或模板。OpenCV中的模型匹配算子主要包括以下几个: 1. **Brute-Force Matcher**(暴力匹配器):这是最基础的匹配方法,通过逐个比较模板中的每个像素点来寻找最佳匹配。虽然效率不高,但对于小尺寸模板和简单场景适用。 2. **Flann-Based Matcher**(基于FLANN的匹配器):FLANN (Fast Library for Approximate Nearest Neighbors) 提供了高效的近似最近邻搜索算法,适用于大尺寸模板或实时应用,能够快速找到可能的匹配。 3. **ORB (Oriented FAST and Rotated BRIEF)**:ORB结合了特征检测(FAST关键点)和描述符(BRIEF),适合于旋转不变性和性能的要求。 4. **SIFT (Scale-Invariant Feature Transform)** 和 **SURF (Speeded Up Robust Features)**:这两种高级的特征提取和描述符方法对尺度变化和图像旋转有很好的鲁棒性,但计算量较大。 5. **HOG (Histogram of Oriented Gradients)**:在行人检测等任务中常用,根据梯度方向直方图来描述图像区域。 6. **Template Matching**(模板匹配):直接将模板与图像进行逐像素的比较,有诸如`matchTemplate()`、`minMaxLoc()`这样的函数支持。 7. **特征金字塔**:为了解决不同尺度下的匹配问题,可以构建特征金字塔,先从低分辨率开始匹配,再逐步细化到高分辨率。 8. **Match Descriptor Extractor**:用于从图像中提取描述符,并与模板描述符进行匹配,如BFMatcher配合LBPHFaceRecognizer。 选择哪种算子取决于具体的应用场景、性能需求以及图像内容的特点。通常需要根据实际情况进行测试和优化。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值