【问题标题】:How can I measure distances in stereo images?如何测量立体图像中的距离?
【发布时间】:2016-08-08 13:46:31
【问题描述】:
我有两张图片(左图和右图)
我想测量图像上的真实距离?
当我点击图片时,我会得到点击点到相机的真实距离。
左图:
右图:
我已经校准了这两个图像。我想使用 EmguCV 来获取图像的距离。
这可能吗?
【问题讨论】:
标签:
c#
opencv
computer-vision
emgucv
disparity-mapping
【解决方案1】:
虽然我不知道 EmguCV 的具体细节,但我可以告诉您立体深度感知工作原理背后的概念,希望您随后可以实施某种修复。
本质上,第一步是对图像的各个部分进行分割和匹配。您在这里尝试完成的是识别图像中每个“相同”的部分。例如,您希望能够识别每个图像中灯的中心。用于执行此操作的功能集取决于您,但可能有帮助的一个基本功能是使用边缘检测器(如 canny 方法)并尝试将轮廓与相似形状匹配。此外,另一种常见的技术是将图像分解成更小的块并匹配这些块中的特征。您使用的方法取决于您。
接下来,您可以计算两个图像中匹配对象与相机中心的距离。您将需要对 x 和 y 方向执行此操作。我们将其称为 x 和 y 差异。
现在,您需要知道拍摄照片的相机中心之间的距离。一旦你有了这个,你可以做一些简单的三角函数来求解距离。这个here有一个比较简单的解释
同样,这都是概念性的,但重要的是要了解您所应用的算法是如何工作的。了解问题解决方案的第一步是了解问题本身。一旦您对问题以及解决问题的过程有了充分的了解,使用任何库实现该过程应该会变得容易得多。祝你好运!