在 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?
我正在尝试使用立体声视频实时进行一些距离计算,但是没有适当的文档可用于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 中。
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- C++避免重复声明的语法是什么
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 实现无开销push_back的最佳方法是什么
- C++从另一个类访问公共静态向量的正确方法是什么
- "throw expression code" 1e7 >返回 d 是什么?投掷标准::overflow_error( "too big" ) : d;意味 着?
- C++中名称篡改的目的是什么
- 在 c++ 中拥有一组结构的正确方法是什么?
- 这个指针和内存代码打印是什么?我不知道是打印垃圾还是如何打印我需要的值
- 是什么阻止DOMTimerCoordinator::NextID进入无休止的循环
- 派生类销毁的最佳实践是什么
- 这个语法std::class<>{}(arg1, arg2) 在C++中是什么意思?
- 通过JNI传递数据数组的最快方法是什么
- "using namespace std;"在C++的作用是什么?
- 在两台机器之间进行时间戳的最佳c++chrono函数是什么
- 文件系统:复制功能的速度秘诀是什么
- 用常见虚拟函数实现的任意组合来实现派生类的正确方法是什么
- 使用QQuickFramebufferObject时同步数据的最佳方式是什么
- 在 c++ 或 python 中生成一个体面的视差图以在 Raspberry Pi 上实现的最佳方法(算法或函数)是什么
- 在Raspberry Pi上运行OSX openFrameworks项目的最简单方法是什么?