OpenCV+;摄影测量

OpenCV+;摄影测量,opencv,camera-calibration,calibration,photogrammetry,Opencv,Camera Calibration,Calibration,Photogrammetry,我有一双立体眼镜, 照片1: 照片2: 每个图像中都有坐标系。如何使用OpenCV库在该系统中查找点A的坐标。很高兴看到示例代码。 我在opencv.willowgarage.com/documentation/cpp/camera\u calibration\u和\u 3d\u reconstruction.html上找到了它,但没有找到(或没有理解:)你需要理解数学 如果这一页还不够,那么你应该看看-它用了几章来说明这一点。然后有很多教科书更详细地介绍了它首先,这不是真正的立体声对。一对好的

我有一双立体眼镜, 照片1: 照片2:

每个图像中都有坐标系。如何使用OpenCV库在该系统中查找点A的坐标。很高兴看到示例代码。
我在opencv.willowgarage.com/documentation/cpp/camera\u calibration\u和\u 3d\u reconstruction.html上找到了它,但没有找到(或没有理解:)

你需要理解数学


如果这一页还不够,那么你应该看看-它用了几章来说明这一点。然后有很多教科书更详细地介绍了它

首先,这不是真正的立体声对。一对好的立体声需要有60%-80%的重叠,通常图像之间的旋转差异很小。即使这对有必要的基础,是一个良好的立体对由于极端卡帕旋转,产生的极线图像将是无用的

其次,您应该了解OpenCV支持的摄像机校准和共线方程


您的“立体声”图像很好。您已经做的是解决对应问题:在两幅图像中,您都指示了点“A”。这意味着您知道哪个像素对应于每个标记点“A”

你要做的是,在你的相机所在的地方进行三角测量。你只能先校准你的相机。这已经在OpenCV中了。

这将为每个矢量提供精确的光矢量/光线,以及光线经过的相机的光学中心。此外,您还需要立体声校准。这就确定了每个摄像头相对于彼此的方向和位置

从这一点开始,三角剖分很简单,知道点“A”的两幅图像中的像素位置。你有

  • 摄像机1和摄像机2的位置和方向
  • 从摄像机到标签“A”的耳道射线矢量(像素位置)
因此,在空间中有两个位置,以及来自这些位置的两条光线。这些光线的交点就是你的3D答案


请注意,实际上光线永远不会完全相交(3D中的两条线很少相交),因此需要进行近似计算。使用opencv函数triangulatePoints(),使用立体声校准的输入和与标签A相关的像素索引。

您似乎受到自己经验的限制。这是一对很好的立体声组合,有很好的重叠和旋转。我有一个70度的旋转和相机之间70厘米的距离非常好的结果。结果令人敬畏的事实意味着你刚才说的都是胡说八道。在这里查看我们的设置和生成的3D地图:根据您的最终目标,使用这种立体对,您只能获得相对深度比例,几乎没有有用的测量数据。我承认我的经验仅限于像这样的大型摄影测量项目,这是完全不真实的。这只是一个简单的问题,有2个点(2个光学中心)和2个向量,只是三角化。您应该知道“小旋转”和重叠量实际上毫无意义。如果我以40度的角度拍摄9张照片,我仍然可以通过摄影测量制作3D模型。从中你会了解到学位的数量是可以接受的。由于给出了参考点的绝对位置,因此很容易获得绝对刻度。你的极线图像不会是无用的,它们不会是正方形的。相信我,去过那里,做了那件事,成功了。请参阅链接。这可能是一个很好的链接?linkrot,您的图像不再可访问