我在使用fitellipse和opencv-python时遇到了一个相当大的问题。
我知道我必须安装opencv-contrib-python才能获得一些功能,但它不能和fitellips功能一起使用。
当我使用.NET Framework 2.0的时候,结果是这样的
import cv2
cv2.fitEllipse()
这是结果。
TypeError: fitEllipse() missing required argument 'points' (pos 1)
但如果我现在尝试使用,例如,从图像中检测轮廓,结果是:
img = cv2.imread('messi5.jpg',0)
retz,bawgray=cv2.threshold(img , 110,255,cv2.THRESH_BINARY)
contours,hierarchy = cv2.findContours(bawgray,1,1)
cnt = contours
big_contour = []
maxop = 0
for i in cnt:
areas = cv2.contourArea(i)
if areas > maxop:
maxop = areas
big_contour = i
img=cv2.drawContours(img, big_contour, -1, (0,255,0), 3)
cv2.FitEllipse(big_contour)
结果是这样的:
AttributeError: module 'cv2.cv2' has no attribute 'FitEllipse'
我使用opencv-python 4.2.0.34和opencv-contrib-python 4.2.0.34。
你没有提供 cv2.fitEllipse 的输出。另外,你把名字拼错了,是 "fitEllipse"。它是 "fitEllipse "而不是 "FitEllipse "的小写 "f"。
试试
result = img.copy()
((centx,centy), (width,height), angle) = cv2.fitEllipse(big_contour)
cv2.ellipse(result, (int(centx),int(centy)), (int(width2/),int(height2/)), angle, 0, 360, (0,0,255), 1)