在 c++ 或 python 中生成一个体面的视差图以在 Raspberry Pi 上实现的最佳方法(算法或函数)是什么

What is the best way(algorithim or function) of generating a decent disparity map in c++ or python for implementation on raspberry pi?

本文关键字:Pi 是什么 Raspberry 函数 方法 最佳 实现 算法 体面 python c++      更新时间:2023-10-16

我正在尝试使用立体声视频实时进行一些距离计算,但是没有适当的文档可用于opencv3的视差映射,并且opencv2中的许多旧命令不适用于最新版本。有没有其他方法(库或算法(可以在 c++ 或 python 中进行视差映射。

我正在尝试在树莓派上实现我的代码,性能对我来说是一个问题。我知道 c++ 速度更快,处理器密集度也相对较低,所以我可能会使用它,但在这方面任何帮助将不胜感激。

是的,但是如果您想要任何相当快速或准确的功能,则需要使用由 CUDA 提供支持的半全局匹配:https://github.com/fixstars/libSGM .使用这样的库,您可以获得~640x480像素图像的实时视差图。

第一步是使用OpenCV校准成像系统/立体相机。有很多很多关于这方面的教程,但这是一个很好的起点:https://docs.opencv.org/2.4/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html

然后,一旦校准并创建校正矩阵,您将需要校正传入的图像,以便它们处于校正后的坐标中,并且由于光学系统中的透镜或其他缺陷而导致的任何失真都将得到纠正。

然后使用所需的视差算法/库从这个校正后的对生成视差图。这通常在128到256个差异水平之间,后者不太常见。然后,您可以使用 cv::reprojectImageTo3D(( 将此视差图转换为度量深度图。从这里,您可以使用任意数量的融合或 SLAM 库融合深度图,KinectFusion 是最古老、最容易进入的库之一。事实上,它已集成到 PCL 中。