首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

OpenCV 轮廓 —— 轮廓匹配

一个跟轮廓相关的最常用到的功能是如何匹配多条轮廓。我们或许需要比较两条计算好的轮廓,或者比较一条轮廓和一个抽象模板。这两种情况都会在本文讨论。...矩 相关介绍 比较两条轮廓最简洁的方法之一是比较它们的轮廓矩。轮廓矩代表了一条轮廓、一幅图像、一组点集的某些高级特征。下面的所有讨论对轮廓、图像、点集都同样适用,简便起见,将它们统称为对象。...官方文档 仅适用于来自 Python 绑定的轮廓矩计算: 注意,输入数组的 numpy 类型应该是 np.int32或 np.float32。...OpenCV 努力提供比矩匹配更好的形状匹配算法 https://docs.opencv.org/4.5.5/d1/d85/group__shape.html#ga1d058c5d00f6292da61422af2f3f4adc...在 OpenCV 4.5.5 中还没有实现,有传说在 3.5 的版本中有相关函数 源码 https://github.com/zywvvd/Python_Practise/tree/master/OpenCV

2.4K30

OpenCV 入门教程:轮廓特征和轮廓匹配

OpenCV 入门教程:轮廓特征和轮廓匹配 导语 轮廓特征和轮廓匹配是图像处理中用于描述和比较轮廓的技术。通过提取轮廓的形状、面积、周长等特征,并进行比较和匹配,我们可以实现目标识别、形状分析等应用。...在本文中,我们将以轮廓特征和轮廓匹配为中心,为你介绍使用 OpenCV 进行轮廓处理的基本步骤和实例。...二、轮廓匹配 轮廓匹配是比较两个轮廓之间的相似度或差异度的技术。通过计算轮廓的形状、面积、周长等特征的差异,并进行比较,我们可以判断轮廓之间的相似性或不相似性。...三、示例应用 现在,我们来看一些常见的示例应用,演示轮廓特征和轮廓匹配的操作: 3.1 目标识别 使用轮廓特征和轮廓匹配可以实现目标识别,通过比较轮廓特征的相似度,判断是否存在目标对象。...你学会了使用 findContours 函数寻找轮廓,并通过计算轮廓的形状、面积、周长等特征进行轮廓匹配和形状分析。 轮廓特征和轮廓匹配是图像处理中常用的技术,可以应用于目标识别、形状分析等多个领域。

1.7K10
您找到你想要的搜索结果了吗?
是的
没有找到

学习|OpenCV匹配相似轮廓

从图上我们可以看出来,通过鼠标点击找到我们要实现的轮廓,然后通过匹配轮廓把找到的轮廓在左边的图中都画出来,其中是我们点击的轮廓就红色填充,匹配的相似轮廓用的蓝色填充,就是实现的一个这样简单的效果。...综合练习知识点 # 实现的方式及用到的学习函数 1 通过点击鼠标来选中需要匹配轮廓,所以用到了setMouseCallback函数 2 基本图像操作,灰度图,高斯模糊,形态学梯度操作 3 查找轮廓findContours...,获取鼠标点击的轮廓pointPolygonTest 4 轮廓匹配matchShapes 代码实现 ?...opencv.hpp> #include using namespace cv; using namespace std; class matchShape { private: //匹配阈值...double threshdouble = 0.3; //获取图像轮廓 vector> getContours(Mat src); //获取点击的点的所在轮廓

2.2K10

OpenCV 轮廓 —— 轮廓查找

虽然Canny.之类的边缘检测算法可以根据像素间的差异检测出轮廓边界的像素,但是它并没有将轮廓作为一个整体进行处理。下一步是要将这些边缘像素合成轮廓。...轮廓层次 在了解到底如何提取轮廓之前,有必要花一些时间来理解轮廓到底是什么以及一组轮廓之间如何互相关联。...图中有五块颜色区域(分别标记为A,B,C,D,E), 每块区域的外部边界和内部边界都各自组成轮廓。因此共有9条轮廓。每条轮廓都由一组输出列表表示(右上角图一轮廓参数)。...# 轮廓近似法 contours[, # 检测到的轮廓。...如果为 1,则函数绘制轮廓和所有嵌套轮廓。 如果为 2,则函数绘制轮廓、所有嵌套轮廓、所有嵌套到嵌套的轮廓,依此类推。仅当存在可用层次结构时才考虑此参数。

2.6K20

OpenCV 轮廓 —— 轮廓分析

当分析一张图像的时候,针对轮廓,我们也许有很多事情要做。毕竟,所有轮廓都是或即将是我们想要进行识别或操作的。另外相关的还有多种对轮廓的处理,如描述轮廓,简化或拟合轮廓匹配轮廓到模板,等等。...Douglas-Peucker(DP) 逼近算法 该算法首先从轮廓(图B)中挑出两个最远的点,将两点相连(图C)。然后在原来的轮廓上寻找一个离线段距离最远的点, 将该点加入逼近后的新轮廓中。...从这里可以看出,将该精度设置为轮廓周长或外包矩形周长等表示轮廓总长度的值的几分之一比较合适。...这可能包括长度或其他一些反应轮廓整体大小的量度。另一个有用的特性是轮廓矩(contour moment)可以用来概括轮廓的总形状特性,这部分我们在下一节讨论。...isContourConvex(contours[0])) print(cv2.isContourConvex(hull)) --> False True 源码 https://github.com/zywvvd/Python_Practise

3K20

python opencv】轮廓更多属性

凸性缺陷 我们看到了关于轮廓的第二章的凸包。从这个凸包上的任何偏差都可以被认为是凸性缺陷。 OpenCV有一个函数来找到这个,cv.convexityDefects()。...点多边形测试 这个函数找出图像中一点到轮廓线的最短距离。它返回的距离,点在轮廓线外时为负,点在轮廓线内时为正,点在轮廓线上时为零。...形状匹配 OpenCV附带一个函数cv.matchShapes(),该函数使我们能够比较两个形状或两个轮廓,并返回一个显示相似性的度量。结果越低,匹配越好。它是根据矩值计算出来的。...我得到以下结果: - 匹配的图像A与本身= 0.0 - 匹配图像A与图像B = 0.001946 - 匹配图像A与图像C = 0.326911 看,即使是图像旋转也不会对这个比较产生很大的影响。...对轮廓的这些属性暂时不是很感兴趣,就直接摘抄下来了。

61420

python图像轮廓识别_python数字图像处理

该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门、OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子、图像增强技术、图像分割等,后期结合深度学习研究图像识别...希望文章对您有所帮助,如果有不足之处,还请海涵~ 前面一篇文章介绍了图像分类知识,包括常见的图像分类算法,并介绍Python环境下的贝叶斯图像分类算法、基于KNN算法的图像分类和基于神经网络算法的图像分类等案例...如果有问题随时私聊我,只望您能从这个系列中学到知识,一起加油喔~ 代码下载地址(如果喜欢记得star,一定喔): https://github.com/eastmountyxz/ImageProcessing-Python

85920

python 基于opencv 绘制图像轮廓

这篇文章主要介绍了python 基于opencv 绘制图像轮廓的示例,帮助大家更好的利用python的opencv库处理图像,感兴趣的朋友可以了解下 图像轮廓概念 轮廓是一系列相连的点组成的曲线,代表了物体的基本外形...谈起轮廓不免想到边缘,它们确实很像。简单的说,轮廓是连续的,边缘并不全都连续(下图)。...,一般使用cv.RETR_TREE,表示提取所有的轮廓并建立轮廓间的层级。...函数有2个返回值,hierarchy是轮廓间的层级关系,这个不用理会。我们主要看contours,它就是找到的轮廓了,以链表形式存储,记录了每条轮廓的所有像素点的坐标(x,y)。 ?...以上就是python 基于opencv 绘制图像轮廓的详细内容

1.9K11
领券