【发布时间】:2014-04-17 01:14:26
【问题描述】:
我在没有 NDK 的 Android 上使用 OpenCV 时遇到了一些问题。
目前我正在我的大学做一个项目,我的厨师告诉我,在从 2D 图像重建 3D 对象时,我应该避免相机校准。
到目前为止,我有 2 张 2D 图像,并拥有所有特征点、匹配项、good_matches、基本矩阵和齐次矩阵。此外,我还使用 StereoBM 计算了视差图。下一步应该是从所有这些值中获取 3D 点云。
我上网查了一下发现
Calib3d.reprojectImageTo3D(disparity, _3dImage, Q, false);
使用这种方法,我应该能够重新创建 3D 点云......目前的问题是,我没有 Matrix Q。 我想我会从方法中得到这个
stereoRectify(...);
但由于我应该避免在这种特定情况下使用 cameraCalibration,所以我不能使用这种方法。另一种选择
stereoRectifyUncalibrated(...);
不提供Q...
有人可以帮助我并告诉我如何以更简单的方式获得 Q 或点云吗? 谢谢
【问题讨论】:
-
几个问题: 1. 您的 2 张图像是从同一个相机(例如移动后)还是从两个不同的相机获取的? 2. 相机校准不适用有充分的理由吗? 3. 您需要哪种 3D 重建:投影、欧几里得或按比例缩放?另外,请注意
StereoBM在图像校正后调用时会产生最佳结果.. -
1.两张图像来自同一个相机,2. 没有校准......是的,因为我的厨师这么说......我看不出一个很好的理由...... 3. 我需要一个点云......尽可能准确......从这些图像生成。感谢 StereoBM 之前的纠正提示。
标签: java android opencv 3d-reconstruction disparity-mapping