c# - 如何测量立体图像中的距离?

标签 c# opencv computer-vision emgucv disparity-mapping

我有两张图片(左图和右图) 我想测量图像上的真实距离? 当我点击图像时,我会得到点击点到相机的真实距离。

左图:

enter image description here

右图:

enter image description here

我已经校准了两个图像。我想使用 EmguCV 获取与图像的距离。

这可能吗?

最佳答案

虽然我不知道 EmguCV 的具体细节,但我可以告诉您立体深度感知工作原理背后的概念,希望您可以实现某种修复。

从本质上讲,第一步是对图像的各个部分进行分割和匹配。您在这里要完成的是识别图像中每个部分“相同”的部分。例如,您希望能够识别每个图像中灯的中心。您用来执行此操作的功能集取决于您,但一个可能有帮助的基本功能是使用边缘检测器(如 canny 方法)并尝试匹配具有相似形状的轮廓。此外,另一种常见的技术是将图像分解成更小的 block 并匹配这些 block 中的特征。您使用的方法由您决定。

接下来,您可以计算两张图像中匹配对象与相机中心的距离。您需要对 x 和 y 方向都执行此操作。我们将称之为您的 x 和 y 差异。

现在,您需要知道拍摄照片的相机中心之间的距离。一旦你有了这个,你就可以做一些简单的三角来解决距离问题。对此 here 有一个相当简单的解释

同样,这都是概念性的,但重要的是要了解您所应用的算法是如何工作的。理解问题解决方案的第一步是理解问题本身。一旦您对问题和解决问题的过程有了充分的了解,使用任何库实现该过程应该会变得容易得多。祝你好运!

关于c# - 如何测量立体图像中的距离?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36666585/

相关文章:

c# - 使用 "one-to-many"关系和 WebApi 时,Entity Framework Core 异步/等待死锁

c# - 绑定(bind)数据网格按钮 mvvm

python - 在 Ubuntu 17.04 中使用 Python 2.7 安装 OpenCV 3.2.0

visual-studio-2010 - 在 Windows 7 64 位上编译 OpenCV

opencv - 多个图像的位置估计

computer-vision - 使用校准矩阵了解 CCD 传感器尺寸

c# - 懒惰地创建隔离存储

c# - ValidationMessageFor 与 AddModelError(key, message) 一起。关键是什么?

c++ - OpenCV:将 std::vector 传递给需要 OutputArray 的函数时,vec 包含垃圾

iOS 使用 openCV 从相机检测矩形