轮廓的近似多边形

简介: 【6月更文挑战第11天】轮廓的近似多边形。

轮廓的近似多边形
cv2.approxPolyDP()函数用于返回轮廓的近似多边形,其基本格式如下。
ret=cv2.approxPolyDP(contour,epsilon,closed)
参数说明如下。
ret为返回的近似多边形。
contour为轮廓。
epsilon为精度,表示近似多边形接近轮廓的最大距离。
closed为布尔值,为True时表示轮廓是封闭的。
示例代码如下。

轮廓的近似多边形

import cv2
import numpy as np
img=cv2.imread('shape3.jpg') #读取图像
cv2.imshow('original',img) #显示原图像
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #将其转换为灰度图像
ret,img2=cv2.threshold(gray,125,255,cv2.THRESH_BINARY) #二值化阈值处理
c,h=cv2.findContours(img2,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE) #查找轮廓
ep=[0.1,0.05,0.01]
arcl=cv2.arcLength(c[0],True) #计算轮廓长度
print(arcl)
img3=np.zeros(img.shape, np.uint8)+255 #按原图大小创建一幅白色图像
img3=cv2.drawContours(img3,c,-1,(0,0,255),2) #绘制轮廓
for n in range(3):
eps=ep[n]*arcl
img4=img3.copy()
app=cv2.approxPolyDP(c[0],eps,True) #获得近似多边形
img4=cv2.drawContours(img4,[app],-1,(255,0,0),2) #绘制近似轮廓
cv2.imshow('appro %.2f' % ep[n],img4) #显示轮廓图像
cv2.waitKey(0) #按任意键结束等待
cv2.destroyAllWindows() #关闭所有窗口

相关文章
|
5月前
|
算法 C++
空间直线与球面相交算法
空间直线与球面相交算法
51 0
|
7月前
|
Python
轮廓的矩
【6月更文挑战第25天】轮廓的矩。
56 1
|
7月前
|
索引 Python
轮廓的凸包
【6月更文挑战第11天】轮廓的凸包。
51 3
|
7月前
|
Python
轮廓面积
【6月更文挑战第11天】轮廓面积。
53 3
|
8月前
|
存储 算法
轮廓发现
轮廓发现
47 5
|
8月前
|
计算机视觉
OpenCV(三十四):轮廓外接最大、最小矩形和多边形拟合
OpenCV(三十四):轮廓外接最大、最小矩形和多边形拟合
565 0
|
8月前
|
算法
[Halcon&拟合] 直线、矩形和圆的边缘提取
[Halcon&拟合] 直线、矩形和圆的边缘提取
487 0
|
存储 API 图形学
OpenCV_11 轮廓检测:图像的轮廓+绘制轮廓+轮廓近似+边界矩形+椭圆拟合+直线拟合
轮廓检测指检测图像中的对象边界,更偏向于关注上层语义对象。如OpenCV中的findContours()函数, 它会得到每一个轮廓并以点向量方式存储,除此也得到一个图像的拓扑信息,即一个轮廓的后一个轮廓、前一个轮廓等的索引编号。
1940 0
|
Java 计算机视觉 iOS开发
python实现图形检测(绘制轮廓、轮廓拟合等)
python实现图形检测(绘制轮廓、轮廓拟合等)
282 0
python实现图形检测(绘制轮廓、轮廓拟合等)
|
计算机视觉 算法
【4opencv】求解向量和轮廓的交点
在“学习OpenCV3"的QQ群众,网友且行且珍惜针对前期博客(https://www.cnblogs.com/jsxyhelu/p/9345590.html)中的内容提出了以下问题: 比如这张图,利用PCA求出了特征向量之后,我想要求解与轮廓的交点,不知道有没有简单的方法@禾老师    非常好的问题!在寻找到轮廓的”主方向“后,往往下一个动作就是寻找向量和轮廓的交点,因为往往这才是我们更关心的地方。
2694 0

热门文章

最新文章

下一篇
开通oss服务