OpenCV-Pytho 学习--------Canny边缘检测--------图像金字塔-------图像轮廓

1 .Canny边缘检测

1.1 Canny边缘检测基础

1.去噪
2.计算梯度的幅值与方向
3.非极大值抑制
4.确定边缘
在这里插入图片描述
在这里插入图片描述

2.图像金字塔

2.1 pyDown函数及使用

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2.2 pyrUp函数及使用

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2.3 拉普拉斯金字塔

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3.图像轮廓

3.1 查找并绘制轮廓

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2矩特征

3.2.1 矩的计算:moment函数

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2.2 计算轮廓的面积:contourArea函数

在这里插入图片描述
在这里插入图片描述

3.2.3 计算轮廓的长度:arcLength函数

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.3 Hu矩

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.3.1 形状匹配

在这里插入图片描述
在这里插入图片描述

3.4 轮廓拟合

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
cv.drawcContours()
在这里插入图片描述

在这里插入图片描述
cv.rectangle()
在这里插入图片描述

在这里插入图片描述

3.4.1 最小包围矩形框

retval=cv.minAreaRect(point)
. retval(最小外接矩形的中心(x,y),(宽度,高度),旋转角)。
. point是轮廓

函数cv.boxPoints()能够将上述返回值retval转换为符合cv.drawContours()要求的结构。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.4.2 最小包围圆形

center,radius =cv.minEnclosingCircle(points)
. center是最小包围圆形的中心
. radius是最小包围圆形的半径
. points是轮廓

在这里插入图片描述

在这里插入图片描述

3.4.3 最优拟合椭圆

retval =cv.fitEllipse(points)
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.3.4 最优拟合直线

在这里插入图片描述

在这里插入图片描述

3.3.5 最小外包三角形

retval,triangle=cv.minEnclosingTriangle(points)
. retval:最小外包三角形的面积
. triangle:最小外包三角形的三个顶点集
. points是轮廓
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.3.6 逼近多边形

approxCurve=cv.approxPolyDP(curve,epsilon,closed)
. curve是轮廓
. epsilon为精度,原始轮廓的边界点与逼近多边形边界之间的最大距离
. closed是布尔型值。该值为True时,逼近多边形是封闭的;否则,逼近多边形是不封闭的
. approxCurve为逼近多边形的点集

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.4 凸包

hull =cv.convexHull(points,clockwise,returnPoints)
. hull为凸包角点
. points:轮廓
. clockwise:布尔型值。True,凸包角点将按顺时针方向排列;False,则以逆时针方向排列凸包角点。
. returnPoints:布尔型值。默认是True,函数返回凸包角点的x/y轴坐标;当为False时,函数返回轮廓中凸包角点的索引。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3.4.1 凸缺陷

convexityDefencts =cv.convexityDefects(contour,convexhull)
. contour是轮廓
. convexhull是凸包
. convexityDefects为凸缺陷点集,【起点,终点,轮廓上距离凸包最远的点,最远点到凸包的近似距离】

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

3.4.2 几何学测试

1.测试轮廓是否是凸形的
retval=cv.isContourConvex(contour)
. retval 是布尔型值。True,表示轮廓为凸形的,否则,不是凸形
. contour为要判断的轮廓
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
2. 点到轮廓的距离
retval =cv.pointPolygonTest(contour,pt,measureDist)
. contour为轮廓
. pt为待判定的点
. measureDist为布尔型值,表示距离的判定方式
. Ture,表示计算点到轮廓的距离。如果点在轮廓的外部,返回值为负数;如果点在轮廓上,返回值为0;如果点在轮廓内部,返回值为正数。
. False,不计算距离,只返回“-1”,“0”,“1”

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值