前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >凸形测试

凸形测试

作者头像
裴来凡
发布2022-05-28 16:22:00
2950
发布2022-05-28 16:22:00
举报
代码语言:javascript
复制
import cv2
o=cv2.imread('C:/Users/xpp/Desktop/Finger.png')#原始图像
cv2.imshow("original",o)
gray=cv2.cvtColor(o,cv2.COLOR_BGR2GRAY)#将彩色图片转换为灰度图
ret,thresh=cv2.threshold(gray,235,255,cv2.THRESH_BINARY)#将灰度图片转换为二值图片
contours,hierarchy=cv2.findContours(thresh,2,1)#计算图像轮廓
for cnt in contours:
    hull=cv2.convexHull(cnt)#计算凸包
    length=len(hull)
    if length>5:
        for i in range(length):
            cv2.line(gray,tuple(hull[i][0]),tuple(hull[(i+1)%length][0]),(0,0,255),2)#绘制凸包
print("函数cv2.convexHull()构造的多边形是否是凸形的:",cv2.isContourConvex(hull))#凸形测试
cv2.imshow("result1",gray)
epsilon=0.01*cv2.arcLength(cnt,True)#计算轮廓长度
approx=cv2.approxPolyDP(cnt,epsilon,True)#计算逼近多边形
image2=cv2.drawContours(gray,[approx],0,(0,0,255),2)#绘制图像轮廓
print("函数cv2.approxPolyDP()构造的多边形是否是凸形的:",cv2.isContourConvex(approx))#凸形测试
cv2.imshow("result2",image2)
cv2.waitKey()
cv2.destroyAllWindows()

函数cv2.convexHull()构造的多边形是否是凸形的:True 函数cv2.approxPolyDP()构造的多边形是否是凸形的:False

算法:图像轮廓的走向及其顶点凹凸性识别常应用在刀具轨迹路径的生成、多边形的三角剖析、轮廓特征点的基元关系判定、科学计算可视化和石材异型板上挖孔等领域。

retval=cv2.isContourConvex(contour)

  • contour表示轮廓

注意:轮廓没有自交叉。

书籍:《凸性》

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-02-02,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 图像处理与模式识别研究所 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档