问题标签 [disparity-mapping]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
7753 浏览

opencv - OpenCV StereoSGBM 和 gpu::StereoBM_GPU 之间的巨大区别

我尝试使用 OpenCV 生成立体图像的视差并使用 GPU 优化性能,但它们的结果不同。

StereoSGBM 初始化

结果:http: //i.stack.imgur.com/eov4N.jpg

gpu::StereoBM_GPU 初始化

结果:http: //i.stack.imgur.com/WVzrK.jpg

有谁知道为什么?

0 投票
3 回答
1231 浏览

image-processing - 如何使用单相机拍摄立体图像?

我想找到立体图像的深度图。目前我正在处理互联网图像,我想拍摄立体图像,以便我可以自己处理它。如何在没有太多噪音的情况下拍摄最佳立体图像。我有单摄像头。需要整改吗?摄像头之间必须保持多少距离?

0 投票
1 回答
1382 浏览

java - reprojectImageTo3D - 我在哪里得到 Q

我在没有 NDK 的情况下在 Android 上使用 OpenCV 时遇到了一些问题。
目前我正在我的大学做一个项目,我的厨师告诉我,在从 2D 图像重建 3D 对象时,我应该避免相机校准。

到目前为止,我有 2 张 2D 图像,并且拥有所有的特征点、匹配、good_matches、基本矩阵和齐次矩阵。此外,我还使用 StereoBM 计算了视差图。下一步应该是从所有这些值中获取 3D 点云。

我检查了互联网,发现

使用这种方法,我应该能够重新创建 3D 点云......目前的问题是,我没有矩阵 Q。我想我会从方法中得到这个

但是由于我应该避免在这种特定情况下使用 cameraCalibration,所以我不能使用这种方法。替代方案

不提供Q...

有人可以帮助我并向我展示如何以更简单的方式获得 Q 或点云吗?谢谢

0 投票
2 回答
5668 浏览

opencv - 使用 cv::StereoBM 进行视差计算的 CvStereoBMState 文档

OpenCV 文档中没有充分解释 Konolige 块匹配算法的应用。CvStereoBMState 的参数影响由 cv::StereoBM 计算的视差的准确性。但是,这些参数没有记录。我将在下面列出这些参数并描述我所理解的。也许有人可以添加参数的描述,这些都不清楚。

  • preFilterType:确定在计算视差之前对图像应用哪个过滤器。可以是 CV_STEREO_BM_XSOBEL(Sobel 滤波器)或 CV_STEREO_BM_NORMALIZED_RESPONSE(可能与平均强度不同???)
  • preFilterSize:前置过滤器的窗口大小(宽度=窗口高度,负值)
  • preFilterCap:将输出剪辑到 [-preFilterCap, preFilterCap]。区间外的值会发生什么变化?
  • SADWindowSize:左侧和右侧图像中比较窗口的大小,其中计算绝对差的总和以找到相应的像素。
  • minDisparity:考虑的最小视差。默认为零,如果可能出现负视差,则应设置为负值(取决于相机视图之间的角度和被测物体到相机的距离)。
  • numberOfDisparities:视差搜索范围 [minDisparity, minDisparity+numberOfDisparities]。
  • textureThreshold:仅在纹理大于(或至少等于?)此阈值的位置计算视差。纹理是如何定义的???周围窗口的差异???
  • uniquenessRatio:引自 calib3d.hpp:“仅当 SAD(d) >= SAD(d*) (1 + uniquenessRatio/100.) 对于搜索范围内的任何 d != d +/-1 时,才接受计算的差异 d*。 "
  • 斑点范围:不确定。
  • 尝试更小的Windows:???
  • roi1, roi2: 只计算这些区域的视差???不确定。
  • speckleWindowSize:不确定。
  • disp12MaxDiff:不确定,但 calib3d.hpp 中的注释说,执行了左右检查。猜测:像素从左图匹配到右图,从右图匹配到左图。仅当原始左侧像素和后向匹配像素之间的距离小于 disp12MaxDiff 时,差异才有效。
0 投票
2 回答
2584 浏览

matlab - matlab中两个相似图像的视差计算

我有两个图像(都是完全相同的图像),我正在尝试使用平方距离和重建 3D 空间中的差异来计算它们之间的差异。在计算视差之前是否需要校正图像?

以下是我迄今为止为视差图计算所做的步骤(我尝试过校正和不校正,但两者都返回全零视差矩阵)。

我做得对吗?

如何在matlab中将视差的3D重建可视化为散点图?

0 投票
1 回答
3983 浏览

opencv - 理解 Opencv 中的视差图

有人可以解释一下视差图到底返回了什么。因为文档中给出的内容不多,而且我有一些与之相关的问题。

  1. 它是否返回两个图像的像素差值?
  2. 如何在深度估计公式中使用视差值,即

    Depth = focalLength*Baseline/Disparity

  3. 我在某处读到视差图给出了深度 f(z) 的函数

请解释一下是什么意思。如果深度纯粹是一个绝对值,它如何生成为一个函数,或者它是一个关于像素的函数?

0 投票
1 回答
2850 浏览

matlab - matlab视差函数如何选择BlockSize和DisparityRange参数来计算深度图

我有 2 张立体图像,深度图的质量取决于视差函数的BlockSizeDisparityRange参数。目前我通过尝试几个不同的值来修复它们。

有没有更好的方法(代码或matlab函数)来修复这些参数,也许也是自动的?

参考

0 投票
1 回答
765 浏览

matlab - Matlab:从视差图到 3D 坐标

我从以下位置复制了 matlab 代码:http: //www.mathworks.fr/fr/help/vision/ug/stereo-image-rectification.html 我可以计算 3D 坐标,但我不确定它是否正确。

从视差图开始计算3D坐标,我们如何考虑翘曲tform1tform2

0 投票
1 回答
3563 浏览

matlab - 在matlab中可视化深度图并以mm为单位获取对象的深度

在 MATLAB 中可视化深度图以找到以毫米为单位的对象深度的最佳方法是什么?我正在使用视野如何改变立体视觉中的深度估计中的公式?从视差计算深度。现在我想测量深度图中物体的深度。所有单位均以毫米为单位。我的视差图是 786*1126 单。我的深度图大小相同。我在 MATLAB 中使用 imagesc 绘制它们。但这并没有让我对物体的深度有任何想法。任何帮助表示赞赏。

0 投票
1 回答
11644 浏览

opencv - openCV C++中的视差图代码

我使用加州理工学院的工具箱(http://www.vision.caltech.edu/bouguetj/calib_doc/)在 MATLAB 中校准和立体校正图像。我在 MATLAB 中尝试了这种差异,但现在没有返回好的结果,我想在 OPENCV 中尝试它。我在他们的网站上找不到任何差异的 OPENCV 示例代码。所以这是我到目前为止找到的代码:(代码来自http://www.jayrambhia.com/blog/disparity-maps/

}

这是我得到的错误:

OPEN_CV_TEST.exe 中 0x000007FEFD4D940D 处的未处理异常:Microsoft C++ 异常:内存位置 0x0000000000149260 处的 cv::Exception。

我是 C++ 新手,没有关于运行代码的过程的描述。所以我只是将这些左右图像放在我项目的\x64\Debug文件夹中,并在 MS Visual Studio 2012 Windows 7 64 位中运行代码。我之前创建了这个项目并运行了一个示例测试并且它有效。所以现在我只是将上面的代码复制到主 C++ 源文件中。我认为不应该缺少任何库文件或头文件。另请注意,我现在不需要校正图像,也不需要立体匹配。任何帮助是极大的赞赏。