python opencv 3d重建摄像机_opencv&python在摄像机标定和三维重建中无法绘制极线

在尝试使用OpenCV从相机校准数据生成并绘制极线时遇到了TypeError。代码中定义了一个名为'drawlines'的函数用于在图像上绘制极线,但在调用'cv2.circle'函数时出现了错误,提示需要两个参数但只给出了一个。错误出现在对'img1'调用'cv2.circle'时,可能是因为缺少了坐标参数。
摘要由CSDN通过智能技术生成

在我从相机校准中生成了基本矩阵和基本矩阵之后,我试图得到极线,并在图像中绘制它们来测试我生成的矩阵,如下所示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)

那么,我为什么会犯这个错误,以及如何解决它呢?在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值