我正在使用Python
的OpenCV
。 对于不好的形状,我们使用approxpolyDP()
方法。
为此,我创建了一个不良的矩形(添加到帖子中)。 当使用它时,我只能得到 2 个点,而不是一个正确的矩形。
请问有人能帮我解决这个问题吗?
import cv2
import numpy as np
im = cv2.imread("badrect.png")
img = im
img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
canny = cv2.Canny(img,100,200)
(_,cnts,_) = cv2.findContours(canny,cv2.RETR_TREE,cv2.CHAIN_APPROX_NONE)
cnt = cnts[0]
epsilon = 0.1*cv2.arcLength(cnt,True)
approx = cv2.approxPolyDP(cnt,epsilon,True)
cv2.drawContours(im,approx,-1,(0,255,0),3)
cv2.imshow("img",im)
cv2.waitKey(0)
cv2.destroyAllWindows()
这是结果的样子: