在我从相机校准中生成了基本矩阵和基本矩阵之后,我试图得到极线,并在图像中绘制它们来测试我生成的矩阵,如下所示python-opencv tutorial
下面是实现绘制极线功能的代码:def drawlines(img1,img2,lines,pts1,pts2):
''' img1 - image on which we draw the epilines for the points in img2
lines - corresponding epilines
'''
r,c = img1.shape
img1 = cv2.cvtColor(img1,cv2.COLOR_GRAY2BGR)
img2 = cv2.cvtColor(img2,cv2.COLOR_GRAY2BGR)
for r,pt1,pt2 in zip(lines,pts1,pts2):
color = tuple(np.random.randint(0,255,3).tolist())
x0,y0 = map(int, [0, -r[2]/r[1] ])
x1,y1 = map(int, [c, -(r[2]+r[0]*c)/r[1] ])
img1 = cv2.line(img1, (x0,y0), (x1,y1), color,1)
img1 = cv2.circle(img1,tuple(pt1),5,color,-1)
img2 = cv2.circle(img2,tuple(pt2),5,color,-1)
return img1,img2
但是当我运行以下代码来生成极线时,我得到了一个错误:Traceback (most recent call last): File "FundMat.py", line 124,
in img5,img6 = drawlines(img1,img2,lines1,pts1,pts2) File
"FundMat.py", line 21, in drawlines
img1 = cv2.circle(img1,tuple(pt1),5,color,-1)
TypeError: function takes exactly 2 arguments (1 given)
那么,我为什么会犯这个错误,以及如何解决它呢?在