python做视觉_python – OpenCV – 用于立体视觉的倾斜相机和三角测量地标

我正在使用立体声系统,因此我试图通过三角测量获得某些点的世界坐标.

我的相机呈现一个角度,Z轴方向(深度方向)与我的表面不正常.这就是为什么当我观察平面时,我得不到恒定的深度而是“线性”变化,对吗?我希望从基线方向的深度…我如何重新投射?

我的代码与我的投射数组和三角函数:

#C1 and C2 are the cameras matrix (left and rig)

#R_0 and T_0 are the transformation between cameras

#Coord1 and Coord2 are the correspondant coordinates of left and right respectively

P1 = np.dot(C1,np.hstack((np.identity(3),np.zeros((3,1)))))

P2 =np.dot(C2,np.hstack(((R_0),T_0)))

for i in range(Coord1.shape[0])

z = cv2.triangulatePoints(P1, P2, Coord1[i,],Coord2[i,])

——–编辑以后———–

谢谢scribbleink,所以我试图应用你的提议.但我认为我有一个错误,因为它不能很好地工作,你可以在下面看到.并且点云似乎被弯曲并朝向图像的边缘弯曲.

U, S, Vt = linalg.svd(F)

V = Vt.T

#Right epipol

U[:,2]/U[2,2]

# The expected X-direction with C1 camera matri and C1[0,0] the focal length

vecteurX = np.array([(U[:,2]/U[2,2])[0],(U[:,2]/U[2,2])[1],C1[0,0]])

vecteurX_unit = vecteurX/np.sqrt(vecteurX[0]**2 + vecteurX[1]**2 + vecteurX[2]**2)

# The expected Y axis :

height = 2048

vecteurY = np.array([0, height -1, 0])

vecteurY_unit = vecteurY/np.sqrt(vecteurY[0]**2 + vecteurY[1]**2 + vecteurY[2]**2)

# The expected Z direction :

vecteurZ = np.cross(vecteurX,vecteurY)

vecteurZ_unit = vecteurZ/np.sqrt(vecteurZ[0]**2 + vecteurZ[1]**2 + vecteurZ[2]**2)

#Normal of the Z optical (the current Z direction)

Zopitcal = np.array([0,0,1])

cos_theta = np.arccos(np.dot(vecteurZ_unit, Zopitcal)/np.sqrt(vecteurZ_unit[0]**2 + vecteurZ_unit[1]**2 + vecteurZ_unit[2]**2)*np.sqrt(Zopitcal[0]**2 + Zopitcal[1]**2 + Zopitcal[2]**2))

sin_theta = (np.cross(vecteurZ_unit, Zopitcal))[1]

#Definition of the Rodrigues vector and use of cv2.Rodrigues to get rotation matrix

v1 = Zopitcal

v2 = vecteurZ_unit

v_rodrigues = v1*cos_theta + (np.cross(v2,v1))*sin_theta + v2*(np.cross(v2,v1))*(1. - cos_theta)

R = cv2.Rodrigues(v_rodrigues)[0]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值