轮廓的近似多边形

简介: 【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() #关闭所有窗口

相关文章
|
机器学习/深度学习 vr&ar
一起来学MediaPipe(二)人脸面网格
一起来学MediaPipe(二)人脸面网格
1739 0
一起来学MediaPipe(二)人脸面网格
|
网络安全 数据安全/隐私保护 网络虚拟化
刷完OpenWrt在浏览器无法访问的解决办法
其实问题很明显、 是因为刷了trunk版固件、 并没有集成luci、 那接下来就是装luci、但是装luci需要联网(不过其实不联网其实也是可以安装的、) 我说的联网是让路有联网、而不是网线接路由,路由接电脑、然后电脑拨号上网、这种联网、 如何让路由联网呢? 1、最简单的方法、如果你有两个路由、或者...
13138 0
|
JSON Java Apache
非常实用的Http应用框架,杜绝Java Http 接口对接繁琐编程
UniHttp 是一个声明式的 HTTP 接口对接框架,帮助开发者快速对接第三方 HTTP 接口。通过 @HttpApi 注解定义接口,使用 @GetHttpInterface 和 @PostHttpInterface 等注解配置请求方法和参数。支持自定义代理逻辑、全局请求参数、错误处理和连接池配置,提高代码的内聚性和可读性。
593 3
|
XML 数据格式 Python
Python实用记录(五):labelImg安装和使用-----看这篇就够了!
这篇文章介绍了在Windows 10系统中使用Anaconda3安装labelImg工具的方法,包括通过pip安装相关包和从GitHub下载配置,以及一些使用技巧,如修改预定义类别和自动保存功能。
1609 3
|
计算机视觉
Opencv学习笔记(五):cv2.putText()和cv2.rectangle()详细理解
这篇文章详细介绍了OpenCV库中的`cv2.putText()`和`cv2.rectangle()`函数的使用方法,并通过一个实战例子展示了如何使用这些函数在图像上绘制文字和矩形框。
1258 0
Opencv学习笔记(五):cv2.putText()和cv2.rectangle()详细理解
|
监控 物联网 数据挖掘
php的应用场景
【8月更文挑战第4天】php的应用场景
321 5
|
JavaScript 数据管理 编译器
揭秘 ArkTS 的五大优势:如何让鸿蒙系统开发更高效、更简单?
【10月更文挑战第18天】ArkTS是专为鸿蒙系统设计的开发语言,结合了TypeScript的类型系统,并在分布式开发、UI开发、性能优化和API支持等方面进行了优化。它提供了一系列专门的API和语法糖,简化多设备协同开发,支持高效能和低功耗,助力开发者充分利用鸿蒙系统的分布式架构和强大功能。
937 5
|
IDE JavaScript 前端开发
python语法错误(SyntaxError)
【7月更文挑战第12天】
946 10
|
机器学习/深度学习 人工智能 算法
使用LabVIEW AI视觉工具包快速实现SIFT特征检测(含源码)
使用LabVIEW AI视觉工具包快速实现SIFT特征检测(含源码)
664 0
|
监控 安全 Linux
IT知识百科:什么是黑洞路由?
【7月更文挑战第10天】
1164 5
IT知识百科:什么是黑洞路由?