我编写了这样的代码来检测png图像中的形状。我得到了正确的输出,用于检测正方形和矩形,但对于其他形状,如梯形、菱形、四边形和平行四边形,我无法正确检测。检测这些不同类型多边形的正确代码是什么
_,thrash=cv2.threshold(imgGray,240,255,cv2.THRESH_BINARY)
contours,_=cv2.findContours(thrash,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)
for contour in contours:
approx=cv2.approxPolyDP(contour,0.01*cv2.arcLength(contour,True),True)
cv2.drawContours(img,[approx],0,(0,0,0),5)
x=approx.ravel()[0]
y=approx.ravel()[1]
if len(approx)==4:
x1,y1,w,h=cv2.boundingRect(approx)
aspectRatio=float(w)/h
print(aspectRatio)
if aspectRatio>=0.95 and aspectRatio<=1.05:
cv2.putText(img,"Square",(x,y),cv2.FONT_HERSHEY_COMPLEX,0.5,(0,0,0))
else:
cv2.putText(img,"Rectangle",(x,y),cv2.FONT_HERSHEY_COMPLEX,0.5,(0,0,0))
目前没有回答
相关问题 更多 >
编程相关推荐