C++ 如何利用外部参数获取立体图像中的点
我已经校准了一对相机,知道它们的内在和外在参数。 知道他们都在看一个平面,如果我在其中一个图像中定义了一些点,我如何才能在另一个图像中得到该点 摄影机彼此非常接近,因此假设没有任何遮挡,两者都可以看到相同的对象 是否有openCV函数或一组函数来执行此操作? 我的观点是世界上的Z=0 基本上:C++ 如何利用外部参数获取立体图像中的点,c++,opencv,stereo-3d,C++,Opencv,Stereo 3d,我已经校准了一对相机,知道它们的内在和外在参数。 知道他们都在看一个平面,如果我在其中一个图像中定义了一些点,我如何才能在另一个图像中得到该点 摄影机彼此非常接近,因此假设没有任何遮挡,两者都可以看到相同的对象 是否有openCV函数或一组函数来执行此操作? 我的观点是世界上的Z=0 基本上: P_CAM1=(200,300) -> P_CAM2= ? 答案是: 不失真的图像cv::不失真 计算f=1世界参考坐标中的P1点 计算世界范围内的点refZ=0: 计算世界光学中心坐标:Cop
P_CAM1=(200,300) -> P_CAM2= ?
答案是:
Z=0
:
- 计算世界光学中心坐标:Copt1=[0,0,0,1]T
Copt1w=-R1t*T1
- 计算Coptw1和P1ccdf之间的向量:使用一些数学->
V1w=R1T*P1ccdf
->Coptw1+lambda*V1w=[Pxw,Pyw,0]T
lambda=-cpotw(z)/V1(z)
Coptw1+lambda*V1w=[Pxw,Pyw,0]T=P1w
P1ccd2f=R2T2*[Pxw Pyw 0 1]T
P1ccd2f=P1ccd2f/P1ccd2f(3)
P2=A2*P1ccd2f
表示点p
是(4x4)A
是(3x4)RT