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)