c++ - 特定对象的立体对应和 3D 位置 (ROI)

标签 c++ opencv

除了获取其在右图中的位置外,我还想获取其在左图中的位置和 ROI 的特定对象的 3D 位置(使用立体视觉)。

我在网上找到的都是如何使用(StereoBM::operator()/cvFindStereoCorrespondenceBM)获取视差图。

方法是什么?我怎样才能得到那个物体的差异?获取视差图后是否有直接的方法,或者我应该先在正确的图像中匹配对象以获得视差?

你能推荐一个好的算法来匹配对象吗?请在答案中包含代码。

最佳答案

您的任务包含以下步骤:

1)相机标定
2) 提取特征(手动或通过算法。例如 - SURF、SIFT);
3)匹配特征(由你决定。OpenCV有一个蛮力匹配器)
4) Fundamental and Homography 矩阵估计
5) 校正(OpenCV 立体匹配器仅适用于校正后的图像)
6)视差图
7) 基于你的相机型号的三角测量(可能不是针孔)

这些书中有很好的解释和代码:
1) OpenCV 2 Computer Vision Application Programming Cookbook by Robert Laganière
2) Gary Bradski 学习 OpenCV
3) 3D 计算机视觉技术和算法简介,作者: Boguslaw Cyganek 和 J. Paul Siebert

希望对您有所帮助! =)

关于c++ - 特定对象的立体对应和 3D 位置 (ROI),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14329847/

相关文章:

c++ - 构造函数中的类错误

c++ - 具有混合依赖性的 Makefile 模式规则

c++ - 此代码是否有效的 C++?

c++ - 在模块之间传递对象的替代方法

python - 从白色背景中提取前景图像

c++ - 从哪里获得用于面部表情识别的 SVM 训练数据?

c++ - 使用另一个 vector 迭代一个 vector 的特定元素

opencv - 使用OpenCV进行镜头检测

python - SimpleCV网络摄像头黑色图像

c++ - 尝试均衡图像时出现分割错误