美文网首页
轮廓特征

轮廓特征

作者: 大龙10 | 来源:发表于2023-09-11 13:00 被阅读0次

图像轮廓是指由位于边缘、连续的、具有相同颜色和强度的点构成的曲线,它可以用于形状分析以及对象检测和识别。

  • 一、轮廓的矩
  • 二、轮廓的面积
  • 三、轮廓的长度
  • 四、轮廓的近似多边形
  • 五、轮廓的凸包
  • 六、轮廓的直边界矩形
  • 七、轮廓的旋转矩形
  • 八、轮廓的最小外包圆
  • 九、轮廓的拟合椭圆
  • 十、轮廓的拟合直线
  • 十一、轮廓的最小外包三角形

一、轮廓的矩

  • 轮廓的矩包含了轮廓的各种几何特征,如面积、位置、角度、形状等。
  • cv2.moments()函数用于返回轮廓的矩,其基本格式如下:
    ret = cv2.moments(array[, binaryImage])
    ret为返回的轮廓的矩,是一个字典对象, 大多数矩的含义比较抽象, 但其中的零阶矩(m00)表示轮廓的面积
    array为表示轮廓的数组
    binaryImage值为True时,会将array对象中的所有非0值设置为1
img1 = np.zeros(o.shape, np.uint8) + 255
img1 = cv2.drawContours(img1, contours, -1,(0,255,0),2)
cv2.imshow('Contours',img1)

m0 = cv2.moments(contours[0])
print('轮廓0的矩:', m0)
print('轮廓0的面积:', m0['m00'])

二、轮廓的面积

  • cv2.contourArea()函数用于返回轮廓的面积
  • 其基本格式如下
    ret = cv2.contourArea(contour[, oriented])
    ret为返回的面积
    contour为轮廓
    oriented为可选参数, 其参数值为True时, 返回值的正与负表示表示轮廓是顺时针还是逆时针
    参数值为False(默认值)时, 函数返回值为绝对值

三、轮廓的长度

  • cv2.arcLength()函数用于返回轮廓的长度
  • 其基本格式如下
    ret = cv2.cv2.arcLength(contour, closed)
    ret为返回的长度
    contour为轮廓
    closed为布尔值, 为True时表示轮廓是封闭的

四、轮廓的近似多边形

  • cv2.approxPolyDP()函数用于返回轮廓的近似多边形
  • 其基本格式如下:
    ret = cv2.cv2.arcLength(contour, epsilon, closed)
    ret为返回的近似多边形
    contour为轮廓
    epsilon为精度, 表示近似多边形接近轮廓的最大距离
    closed为布尔值, 为True时表示轮廓是封闭的
arcl = cv2.arcLength(contours[0], True)
img2 = o.copy()
app = cv2.approxPolyDP(contours[0], arcl*0.05, True)
img2 = cv2.drawContours(img2, [app], -1, (255,0,0), 2)
cv2.imshow('contours',img2)

五、轮廓的凸包

  • cv2.convexHull()函数用于返回轮廓的凸包
  • 其基本格式如下
    hull = cv2.convexHull(contours[, clockwise[, returnPointss]])
    hull为返回的凸包, 是一个numpy.ndarray对象, 包含了凸包的关键点
    contours为轮廓
    clockwise为方向标记, 为True时, 凸包为顺时针方向, 为False(默认值)时, 凸包为逆时针方向
    returnPointss为True时(默认值)时, 返回的hull中包含的是凸包关键点的坐标, 为False时, 返回的是凸包关键点在轮廓中的索引
hull = cv2.convexHull(contours[0])
print('returnPoints = Treu 时返回的凸包;\n',hull)

hull2 = cv2.convexHull(contours[0], returnPoints=False)
print('returnPoints = False时返回的凸包;\n',hull2)

cv2.polylines(o, [hull], True, (0,0,255),2)
cv2.imshow('ConvecHull',o)

六、资料

「机器视觉小学徒」的博客:
https://blog.csdn.net/weixin_43843069/article/details/122039788

相关文章

  • 图形设计技巧!轮廓提炼法

    文/黄巧丽 现代图形轮廓可以分为: ①以简化为特征的几何形图形轮廓。 这类图形轮廓往往有化简的特征,由繁向简的轮廓...

  • 轮廓的特征值---OpenCV-Python开发指南(29)

    前言 轮廓自身的一些属性特征及轮廓所包围对象的特征对于描述图像具有重要意义。本篇博文将介绍几个轮廓自身的属性特征及...

  • Python+OpenCV教程14:轮廓特征

    主站:http://ex2tron.wang原文:Python+OpenCV教程14:轮廓特征 学习计算轮廓特征,...

  • Opencv之轮廓特征

    1.矩 图像的矩可以帮助我们计算图像的质心,面积等。 # -*- coding: utf-8 -*-import ...

  • 矩特征---OpenCV-Python开发指南(25)

    什么是矩特征 通过前篇博文的学习,我们知道如何从图像中分解轮廓。而矩特征是比较两个轮廓最简单的方法,通过它们的轮廓...

  • 轮廓的特征值

    《OpenCV轻松入门:面向Python》读书笔记作者:李立宗出版社:电子工业出版社出版时间:2019-05 第1...

  • 图像轮廓之矩特征

    《OpenCV轻松入门:面向Python》读书笔记作者:李立宗出版社:电子工业出版社出版时间:2019-05 第1...

  • 静物素描的线性表现

    2018.3.13 录播教师,授课:李竹 一、轮廓的认识 外轮廓 轮廓特征 辨认物体最直观的感受 例1: 例2: ...

  • 29 扫描特征

    扫描特征是通过轮廓沿着一条路径生成基体或凸台或切除或曲面的一种 特征 扫描特征需要至少两个草图,一个是轮廓草图,一...

  • 轮廓特征之矩、面积、周长

    轮廓特征 查找轮廓的不同特征,例如矩、面积、周长等。 图像矩原始矩对于二维连续函数阶的矩被定义为图像矩对于=0,1...

网友评论

      本文标题:轮廓特征

      本文链接:https://www.haomeiwen.com/subject/fodsvdtx.html