目标:
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/0c5f9a7399d3c83f46f82611e9dbc41c.png)
import numpy as np
import cv2 as cv
# 1.载入图片
img = cv.imread("shapes.jpg")
# 2.灰度处理
imgGray = cv.cvtColor(img,cv.COLOR_BGR2GRAY)
# 3.二值化,查找轮廓
_,thresh = cv.threshold(imgGray,170,255,cv.THRESH_BINARY_INV)
contours,_ = cv.findContours(thresh,cv.RETR_EXTERNAL,cv.CHAIN_APPROX_NONE)
# 4.多边形逼近
for contour in contours:
approx = cv.approxPolyDP(contour,0.01*cv.arcLength(contour,True),True)
cv.drawContours(img,[approx],0,(0,0,0),5)
x = approx.ravel()[0]
y = approx.ravel()[1] - 5
if len(approx) == 3:
cv.putText(img,"Triangle",(x,y),cv.FONT_HERSHEY_SIMPLEX,0.5,(0,0,0))
elif len(approx) == 4:
x1,y1,w,h = cv.boundingRect(approx)
aspectRatio = float(w) / h
print(aspectRatio)