cv(py)基于轮廓检测的多边形识别

本文介绍了一种使用OpenCV和Python进行多边形识别的方法,通过图像处理(RGB转灰度,高斯模糊,二值化)和轮廓检测找到多边形。重点在于approxPolyDP函数的应用,该函数将轮廓曲线折线化。难点在于其参数选择,作者发现0.04倍轮廓周长适合,但不同参数会导致形状误识别。实测中,检测到圆形时输出8条折线,揭示了这种方法对于特定形状(如8边形)的局限性。
摘要由CSDN通过智能技术生成

cv(py)基于轮廓检测的多边形识别

直接上照片:
在这里插入图片描述
直接上代码:

import cv2


def sort(i):
    # 使用周长的倍数作为阈值,阈值越小,图像的轮廓近似与轮廓越近似
    shape = "None"
    peri = cv2.arcLength(i, True)               # 周长
    approx = cv2.approxPolyDP(i, 0.02 * peri, True)    # 获取轮廓
    # 在这里0.01会把小的三角形识别为长方形
    # 0.05会把圆识别为正方形

    # 3个点,三角形
    if len(approx) == 3:
        shape = "triangle"
    # 四个点,矩形
    elif len(approx) == 4:
        # 计算轮廓的边界框 并且计算宽高比
        (x, y, w, h) 
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值