C++ 如何利用外部参数获取立体图像中的点

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

我已经校准了一对相机,知道它们的内在和外在参数。 知道他们都在看一个平面,如果我在其中一个图像中定义了一些点,我如何才能在另一个图像中得到该点

摄影机彼此非常接近,因此假设没有任何遮挡,两者都可以看到相同的对象

是否有openCV函数或一组函数来执行此操作? 我的观点是世界上的Z=0

基本上:

P_CAM1=(200,300) -> P_CAM2= ?
答案是:

  • 不失真的图像<代码>cv::不失真
  • 计算f=1世界参考坐标中的P1点
  • 计算世界范围内的点ref
    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
  • 保护世界点进入cam2
    • P1ccd2f=R2T2*[Pxw Pyw 0 1]T
    • P1ccd2f=P1ccd2f/P1ccd2f(3)
    • P2=A2*P1ccd2f
  • 在哪里

    • p
      表示点

    • A
      是(4x4)

    • RT
      是(3x4)

    我认为这可能会有所帮助。