问题标签 [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.
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
有谁知道为什么?
image-processing - 如何使用单相机拍摄立体图像?
我想找到立体图像的深度图。目前我正在处理互联网图像,我想拍摄立体图像,以便我可以自己处理它。如何在没有太多噪音的情况下拍摄最佳立体图像。我有单摄像头。需要整改吗?摄像头之间必须保持多少距离?
java - reprojectImageTo3D - 我在哪里得到 Q
我在没有 NDK 的情况下在 Android 上使用 OpenCV 时遇到了一些问题。
目前我正在我的大学做一个项目,我的厨师告诉我,在从 2D 图像重建 3D 对象时,我应该避免相机校准。
到目前为止,我有 2 张 2D 图像,并且拥有所有的特征点、匹配、good_matches、基本矩阵和齐次矩阵。此外,我还使用 StereoBM 计算了视差图。下一步应该是从所有这些值中获取 3D 点云。
我检查了互联网,发现
使用这种方法,我应该能够重新创建 3D 点云......目前的问题是,我没有矩阵 Q。我想我会从方法中得到这个
但是由于我应该避免在这种特定情况下使用 cameraCalibration,所以我不能使用这种方法。替代方案
不提供Q...
有人可以帮助我并向我展示如何以更简单的方式获得 Q 或点云吗?谢谢
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 时,差异才有效。
matlab - matlab中两个相似图像的视差计算
我有两个图像(都是完全相同的图像),我正在尝试使用平方距离和重建 3D 空间中的差异来计算它们之间的差异。在计算视差之前是否需要校正图像?
以下是我迄今为止为视差图计算所做的步骤(我尝试过校正和不校正,但两者都返回全零视差矩阵)。
我做得对吗?
如何在matlab中将视差的3D重建可视化为散点图?
opencv - 理解 Opencv 中的视差图
有人可以解释一下视差图到底返回了什么。因为文档中给出的内容不多,而且我有一些与之相关的问题。
- 它是否返回两个图像的像素差值?
如何在深度估计公式中使用视差值,即
Depth = focalLength*Baseline/Disparity
我在某处读到视差图给出了深度 f(z) 的函数
请解释一下是什么意思。如果深度纯粹是一个绝对值,它如何生成为一个函数,或者它是一个关于像素的函数?
matlab - matlab视差函数如何选择BlockSize和DisparityRange参数来计算深度图
我有 2 张立体图像,深度图的质量取决于视差函数的BlockSize和DisparityRange参数。目前我通过尝试几个不同的值来修复它们。
有没有更好的方法(代码或matlab函数)来修复这些参数,也许也是自动的?
matlab - Matlab:从视差图到 3D 坐标
我从以下位置复制了 matlab 代码:http: //www.mathworks.fr/fr/help/vision/ug/stereo-image-rectification.html 我可以计算 3D 坐标,但我不确定它是否正确。
从视差图开始计算3D坐标,我们如何考虑翘曲tform1
和tform2
?
matlab - 在matlab中可视化深度图并以mm为单位获取对象的深度
在 MATLAB 中可视化深度图以找到以毫米为单位的对象深度的最佳方法是什么?我正在使用视野如何改变立体视觉中的深度估计中的公式?从视差计算深度。现在我想测量深度图中物体的深度。所有单位均以毫米为单位。我的视差图是 786*1126 单。我的深度图大小相同。我在 MATLAB 中使用 imagesc 绘制它们。但这并没有让我对物体的深度有任何想法。任何帮助表示赞赏。
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++ 源文件中。我认为不应该缺少任何库文件或头文件。另请注意,我现在不需要校正图像,也不需要立体匹配。任何帮助是极大的赞赏。