OpenCV图像轮廓

  • 图像轮廓的绘制与查找
  • *findContours函数*:
  • 矩特征
  • Hu特征



Fu Xianjun. All Rights Reserved.

图像轮廓的绘制与查找

一个轮廓对应着一系列的点,这些点以某种方式表示图像中的一条曲线。在OpenCV中,函数cv2.findContours()用于查找 图像的轮廓,并能够根据参数返回特定的表示方法的轮廓(曲线)。
函数cv2.drawContours能够将查找到的轮廓绘制到图像上,该函数可以根据参数在图像上绘制不同样式的轮廓,可以绘制全部轮廓也可以仅仅绘制指定的轮廓。

findContours函数

函数cv2.findContours()的用法为

img , contours , hierarchy = cv2.findContours(img , mode , method)

其中式中的返回值为:

img:与函数参数中的原始图像img一致。

contours为返回的轮廓。

hierarchy 为图像拓扑信息(轮廓层次)。

而式中参数的含义为:

img原始图像

mode是轮廓检索模式

method为轮廓的近似方法。

opencv实现对指定目标轮廓提取 opencv提取轮廓范围的图_opencv实现对指定目标轮廓提取

矩特征

比较两个轮廓最简单的方法是比较二者的轮廓矩。轮廓矩代表了一个轮廓、一幅图像、一组点集的全局特征。矩信息包含了对应对象不同类型的几何特征,例如大小、位置、角度、形状等。矩特征被广泛地应用在模式识别、图像识别等方面

opencv实现对指定目标轮廓提取 opencv提取轮廓范围的图_模式识别_02

Hu特征

Hu矩是归一化中心矩的线性组合,Hu矩再图像旋转,缩放,平移
等操作后,仍能保持矩的不变性,经常使用 Hu 矩来识别图像的特征。
在 OpenCV 中,使用函数 cv2.HuMoments()可以得到 Hu 距。该函
数使用 cv2.moments()函数的返回值作为参数,返回 7 个 Hu 矩值。

通过Hu 矩可以来判断两个对象的一致性。但是结果比较抽象,
OpenCV 提供了 cv2.matchShapes() 对两个对象的Hu矩进行比较。
retval = cv2.matchShapes(contour1, contour2, method, 0.0)
在这句语法式子中
contour1 :第一个轮廓或灰度图像。
contour2:第二个灰度或轮廓图像。
method :比较两个对象的Hu 矩的方法,一般为1。