问题标签 [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 回答
506 浏览

3d - 创建 3D 模型然后确定尺寸

是否有任何图书馆可以拍摄一些物体的数码照片并创建它的 3d 模型。

例如,理想情况下,我希望让用户上传 n 张对象的图片并将图片输入到诸如光合作用之类的东西中以构建模型,然后确定所述对象的尺寸。

想法?

0 投票
3 回答
7273 浏览

c++ - 如何计算从立体图像到密集视差图?

如何计算从立体图像到立体图像的密集视差图?

到目前为止,我的想法是检查第一张图像中的所有像素,然后扫描第二张图像以查找匹配项。为了比较两个像素的相似性,我计算了它们周围一个小窗口中像素的平方差。该算法在合成图像上效果相对较好,但在包含反射或光强度差异较大的图片上失败。我应该使用什么方法来获得更好的结果?

图像处理大师,请分享你的知识。

0 投票
2 回答
2250 浏览

vision - 如何使用立体视觉对室内环境进行准确的 3D 重建?

我在 openCV 中使用 cvStereoFindCorrespondenceGC() 从著名的 tsukaba 图像中生成视差图。但我注意到它缺少 3D 功能(例如,灯是平的而不是略微弯曲的)。如何解决这个问题?目前的算法缺少什么?

0 投票
1 回答
4954 浏览

c# - Emgu (OpenCV for C#) - 使用 cvStereoRectify 构建视差图

我一直在为 OpenCV 使用出色的 Emgu C# 包装器来从自制的立体设备中收集图像。两个网络摄像头用螺栓固定在一块木头上,相距 35 厘米,希望能让我生成 10-20 米范围内的深度图。我已将它们设置为尽可能平行(三角测量测试大约为 89.3 度)。

我正在尝试根据这些制作视差图,尽管该过程作为代码工作,但结果是非常随机的。我的意思是每次我尝试运行立体校正时,我都会得到非常不同的结果,而且图像经常严重扭曲,屏幕上几乎看不到任何东西。

据我了解,这样做的方法如下:


1) 打印出棋盘图案(例如 6 x 8 内角)- 粘在平坦的东西上。

2) 从相机 1 拍摄一组大约 10 张照片,将棋盘全视但位置不同。

3)使用 CameraCalibration.FindChessboardCorners 找到内角(6乘8)

4) 使用 img.FindCornerSubPix() 将这些角位置细化到亚像素级别

5) 使用 CameraCalibration.CalibrateCamera() 计算内在相机细节,并将其保存为 XML 文件

6) 对摄像机 2 重复上述操作。

7) 现在您有了内部相机失真信息,您可以拍摄立体照片对并使用 CameraCalibration.StereoCalibrate() 和先前计算的内在数据来计算外在信息(相机 1 和 2 之间的偏移和旋转)。

8) 使用 CvInvoke.cvStereoRectify() 和 CvInvoke.cvInitUndistortRectifyMap() 然后使用 CvInvoke.cvRemap() 构建一个输出图像,该图像应该在 Y 中排列,以便您可以运行立体对应测试之一。

我发现您需要使用 Emgu 2.1 版本 806 才能让 cvStereoRectify 正常工作而不会出现访问冲突错误。


我想我的问题是:

A) 我的流程正确吗?我一直在将相机固有校准作为一个单独的过程进行,因为由于相机相距 35 厘米,因此在办公室中将棋盘放在他们两个的视野中并移动它并不容易......因为它很快就会离开一边摄像机视图之一。我认为由于这些值是内在的,因此这些值与相机有关,因此应该可以转移到立体程序。这个对吗?

似乎内在价值在 cvStereoRectify 过程中发生了变化,并且变得非常不同。

例如。第一阶段的失真值 = 0.22,-1.2,0.01,-0.01,2.6 在 cvStereoRectify 之后值更改为 = 10,-489,-0.03,-0.09,13208

我不是专家,但第一组似乎更像我从其他人的评论中看到的,第二组似乎很出路!

B) 有什么方法可以阻止在 cvStereoRectify 期间更新的内在 + 失真值?

C)这是否适合内在价值(937,0,290,0,932,249,0,0,1)?

非常感谢您提供的任何提示...我已经坚持了一段时间...而且我真的不确定该过程的哪一部分引发了错误。任何提示或建议将非常受欢迎......

0 投票
2 回答
1341 浏览

image - 视差图创建opencv

我有 2 张图片,一张是左图,另一张是右图。我想实现视差映射。我心中有些疑问。

Firstlty dispartiy image 是 1 通道灰度图像,但左右图像是 3 通道 bgr 图像。如果我们将这 3 个通道的图像转换为灰度图像,我会丢失信息吗?如果是,我怎样才能从 3 通道 img 到 1 通道视差图像获得视差图像。我的意思是如何将 3 通道图像降级为 1 通道图像以获得视差图像?

谢谢解答。。

0 投票
1 回答
5308 浏览

opencv - cvReprojectImageTo3D -3d 从 2d 图像建模问题-

我非常需要你对这个问题的帮助。我正在尝试用 2d 图像对 3d 中的简单场景进行建模。我正在使用 2 张图像(左右 - 著名的筑波场景) http://www.cc.gatech.edu/classes/AY2003/cs7495_fall/ProblemSets/Data/tsukuba-right.bmp 我得到了一个视差图。像这个。 http://www.robots.ox.ac.uk/~ojw/2op/tsukuba_score.png

在这里之后我有一些问题。我认为步骤应该是:

cvStereoRectify (得到Q) cvReprojectImageTo3D (视差图, 3dimage, Q)

但我不知道在 stereoRectify 中作为输入传递什么我只有 2 张图像,我没有任何关于相机的信息。(也许我可以使用 stereoRectifyUncalibrated 代替,如果可以,我该怎么做?)

请帮忙谢谢

0 投票
2 回答
1438 浏览

matlab - 像素的非均匀移位

从给定的矩阵 A 和 BI 需要计算一个新的矩阵 C。矩阵 A 表示图像像素,C 是 A 的水平移位版本。棘手的部分:这种移位是由视差矩阵 B 中的值定义每个像素的。对于示例:虽然像素 (1,1) 需要向右移动 0.1 个单位,但像素 (1,2) 需要向左移动 0.5 个单位。

我将此实现为反向映射,其中 CI 中的每个像素计算 A 中所需的源位置(这只是我当前像素的位置减去 B 中的相应偏移量)。由于允许非整数移位,我需要插入新的像素值。

当然,随着图像变大,在 Matlab 中执行此操作需要相当长的时间。是否有任何内置功能可以用于此任务?

0 投票
1 回答
53010 浏览

image-processing - “视差图”的定义是什么?

我被要求实现基于边缘的视差图,但我根本不明白视差图是什么。“视差图”的定义是什么?

0 投票
1 回答
2238 浏览

java - 如何创建视差图?

好的,所以我已经实现了一个立体对应算法,它采用立体图像对,将左侧图像上的一个点与右侧图像上的一个点进行匹配,并找到这些点之间的差异。我需要将其写入视差图。

我发现的视差图是灰度图像,浅灰色表示深度较浅,深灰色表示深度较深。如何将我的一组视差转换为这样的灰度图像?我的差异非常小,即像素之间只有两个距离,这如何转化为灰度像素值?

必须有一种编译视差图的标准方法,但到目前为止我的所有搜索都没有产生任何结果。

0 投票
0 回答
950 浏览

opencv - 立体相机中的 OpenCV 人脸检测

这是我想要做的。

  • 分别在 2 个经过校准的 USB 摄像头中检测人脸。
  • 获取每个相机中人脸中心的坐标。
  • 计算视差图中对应的点坐标。

使用 OpenCV 示例代码,我设法

  • 检测人脸并获取​​每个相机的中心坐标。
  • 校准 2 个 USB 立体摄像头并获取内部和外部参数
  • 从立体相机获取视差图

从这里,我如何计算视差图中的人脸坐标?

提前致谢,

米洛