问题标签 [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中是向后的
我的问题是我的视差图中的颜色是向后的。因为距离较远的东西比靠近相机的东西要轻。
我尝试了很多东西(即 convertTo、convertScaleAbs 以及其中的各种值组合等),但似乎无法让视差图中的颜色反转(即正常 - 靠近的东西比远离的东西更轻) .
我需要一些帮助才能做到这一点。
另外,出于好奇,我怎样才能将视差图的颜色空间更改为我在网上看到的 MATLAB 中的彩色空间?
这是我的代码以及pastebin。http://pastebin.com/E3vVN6UU
image - 立体图像校正和视差:哪些算法?
我试图弄清楚目前允许使用的两种最有效的算法是什么,从使用传统相机创建的一对 L/R 立体图像(因此受到一些核线未对准的影响)开始,生成一对调整后的图像通过查看它们的差异来加上它们的深度信息。
实际上我发现了很多关于这两种方法的论文,比如:
- “计算立体视觉的校正同形异义词”(张 - 似乎是最好的校正之一)
- “三步图像校正”(蒙纳斯)
- “矫正与差异”(Navab 的幻灯片)
- “基于区域的快速立体匹配算法”(Di Stefano - 似乎有点不准确)
- “Computing Visual Correspondence with Occlusions via Graph Cuts”(Kolmogorov - 这个产生了一个非常好的视差图,还有遮挡信息,但它有效吗?)
- “关于图像不连续性的密集视差图估计”(Alvarez - 第一次审查太长了)
任何人都可以给我一些建议以适应这个广泛的主题吗?
我应该首先处理什么样的算法/方法,考虑到我将处理一个非常简单的输入:一对左右图像,没有其他信息,没有更多信息(有些论文是基于额外的、预先采取的、校准的信息)?
说到工作实现,到目前为止我看到的唯一有趣的结果属于这个软件,但仅用于自动校正,而不是差异:http ://stereo.jpn.org/eng/stphmkr/index.html
我尝试了“自动调整”功能,似乎真的很有效。可惜没有源代码...
matlab - 使用中值算子将四个初始视差图合二为一
嗨,有人可以帮助我使用 matlab 生成视差图。我已经对两个经过校正的立体对执行了多小波变换,并使用立体匹配算法来组合每个图像的相应巴布带,以生成四个初始视差图。但是,我现在对如何使用中值运算符将这四个视差图的值合并为一个感到困惑并且完全无能为力。有人可以帮我吗?
我的四个图像大小相同。前面的代码无关紧要,因为它位于不同的文件中(我刚刚保存了上一个文件的输出,现在我试图在另一个文件中编码)。
我的想法是: 1. 从四个基带中的每一个中读取像素 p 的值 2. 将值按升序排序 3. 计算像素的中值 4. 将像素值写入新图像 5. 设置 p +1 并重复步骤 1-4 直到到达最后一个像素
谢谢
image - 使用视差图找到对应的像素
我有一对立体图像及其地面实况差异。视差图中的灰度告诉我物体有多远。我如何使用这个灰度级来找到一个像素的对应像素?
我确信灰度级不是沿 x 轴的位移,因为左图 (50, 4) 处的地面实况视差图中的一个像素的视差值为 70(这不能沿 x 轴位移右侧图像中的相应像素,因为坐标将是 (-20, 4) ,这是无效的!!)
我从米德尔伯里数据集中获得了我的图像和基本事实
如何转换这些值以找到其他图像中相应像素的位置?
PS:图像运动是纯水平的
opencv - 给定 OpenCV 中的立体视差图,如何找到左右图像(每像素)之间的真实像素偏移?
我已经成功地使用 OpenCV 2.4.5 中的 cv::stereoSGBM 类创建了一个令人满意的视差图,具有 256 个不同的视差级别。如文档中所示,我已将所有视差值除以 16,但此最终地图不可能包含“真实”视差:如果我将 (x, y) 像素的水平维度添加到其计算的视差 (x + d),得到的坐标 (x + d, y) 在另一幅图像中对应一个完全不同的像素。
我猜这个问题源于我最初将stereoSGBM参数化为256个视差级别,但实际的最大视差(以像素为单位)要小得多。由于我真的不知道实际的最大差异,我不能相应地对由 stereoSGBM 计算的值进行归一化。
我需要实际的视差值来计算密集的立体对应(三角测量和 3D 重建所必需的)。
opencv - 计算距离(视差)OpenCV
-- 更新 2 --
如果您使用单个相机来计算距离,以下文章非常有用(尽管它使用 Python 而不是 C++):Find distance from camera to object/marker using Python and OpenCV
最佳链接是立体网络摄像头深度检测。这个开源项目的实现真的很清晰。
以下是原始问题。
对于我的项目,我使用两个相机(立体视觉)来跟踪物体并计算距离。我用 OpenCV 的示例代码校准了它们并生成了一个视差图。
我已经实现了一种基于颜色跟踪对象的方法(这会生成一个阈值图像)。
我的问题:如何使用视差图/矩阵计算到跟踪的彩色对象的距离?
您可以在下面找到获取每个像素的 x、y 和 z 坐标的代码片段。问题:Point.z 的单位是厘米、像素还是毫米?
我可以使用此代码获取到被跟踪对象的距离吗?
先感谢您!
--更新 1 --
例如,我生成了这个阈值图像(左侧相机)。我几乎拥有相同的正确相机。
除了上述阈值图像外,应用程序还会生成视差图。如何在视差图中获取手部像素的 Z 坐标?
我实际上想获取手部像素的所有 Z 坐标来计算平均 Z 值(距离)(使用视差图)。
computer-vision - 立体匹配中的视差图和视差图有什么区别?
我是立体匹配的新手。我无法理解差异的概念。什么是视差图和视差图像,它们有什么区别?
opencv - 用已经找到的内在和外在参数校正opencv上的图像
我在 Matlab 上运行了 Bouguet 的校准工具箱(http://www.vision.caltech.edu/bouguetj/calib_doc/htmls/example.html),并获得了校准参数(内在 [焦距和主点偏移] 和外在 [棋盘相对于相机的旋转和平移])。
我的图像上棋盘格的特征坐标点也是已知的。
我想获得校正后的图像,以便我可以从每对校正后的图像中制作视差图(我有代码)。
我该怎么做呢?
c++ - 视差图的 OpenCv 深度估计
我正在尝试使用 OpenCV 从立体对图像中估计深度。我有视差图和深度估计可以得到:
我使用块匹配技术在两个校正图像中找到相同的点。OpenCV 允许设置一些块匹配参数,例如BMState->numberOfDisparities
.
在块匹配过程之后:
我发现深度值为:
但是得到的深度值与上式得到的值不同,因为 的值BMState->numberOfDisparities
改变了结果值。
如何设置此参数?这个参数怎么改?
谢谢