Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python/OpenCV:从立体图像计算深度贴图_Python_Opencv_Depth - Fatal编程技术网

Python/OpenCV:从立体图像计算深度贴图

Python/OpenCV:从立体图像计算深度贴图,python,opencv,depth,Python,Opencv,Depth,我有两个立体图像,我想用它们来计算深度贴图。不幸的是,我不懂C/C++,但我懂python——所以当我找到它时,我很乐观 不幸的是,教程似乎有些过时。它不仅需要调整以运行(将“createStereoBM”重命名为“StereoBM”),而且当它运行时,即使在教程中使用的示例立体图像上,也不会产生好的结果 下面是一个例子: 结果是: 这与本教程作者所达到的效果非常不同: (来源:) 调整参数并不能改善问题。我能找到的所有文档都是针对openCV代码的原始C版本,而不是python库的等效

我有两个立体图像,我想用它们来计算深度贴图。不幸的是,我不懂C/C++,但我懂python——所以当我找到它时,我很乐观

不幸的是,教程似乎有些过时。它不仅需要调整以运行(将“createStereoBM”重命名为“StereoBM”),而且当它运行时,即使在教程中使用的示例立体图像上,也不会产生好的结果

下面是一个例子:

结果是:

这与本教程作者所达到的效果非常不同:


(来源:)

调整参数并不能改善问题。我能找到的所有文档都是针对openCV代码的原始C版本,而不是python库的等效版本。不幸的是,我没能用它来改善情况

任何帮助都将不胜感激

相机垂直平移,而不是水平平移。将图像旋转90度,然后重试。(通过旋转屏幕向自己证明这一点。我刚刚拿起笔记本电脑并将其边缘翻转。)


你提到不同的软件;可能是原始和pyOpenCV之间的行主/列主类型。

可能需要不断调整块匹配算法的参数

看看这篇博客文章:

本文作者编写了一组类,使相机校准过程比opencv教程更加简化。这些类作为pypi包提供:


希望这能有所帮助:)

您的图像处理方式不对

看这些图像,灯后面的锡可以让你计算出两幅图像的相机位置

只要改变这个:

#  v
imgR = cv2.imread('Yeuna9x.png',0)
imgL = cv2.imread('SuXT483.png',0)
#  ^
如果你看教程中的图像,他们说这是
帧,它与你的
帧相同

这是我换衣服后的结果


为了记录在案,本教程来自未来(opencv3.0),但确实过时了。对于当前的3.0,您必须使用cv2.StereoBM_create()或cv2.StereoSGBM_create()。cv2.StereoBM似乎存在,但使用cv2.StereoBM_create()或cv2.StereoSGBM_create()会出现错误(属性错误)。很明显,您使用的是opencv2.4,而不是3.0,这也显示了StereoSGBM的使用情况?很好!我来看看这个例子。很抱歉版本混乱。用自制软件安装OpenCV已经是一场噩梦,所以我现在不敢尝试升级。如果我正确理解你的建议,我应该尝试将源图像旋转90度,然后运行相同的代码?我刚刚试过这个--它不会产生更好的结果。你让它起作用了吗?如果是的话,你能公布结果吗?我想这只是问题的格式。。。图像是从两个水平分开的透视图中获得的。此外,如果是这种情况,则无所谓,您只需将底部图像置于左侧(旋转参考框架)。单独旋转每个图像实际上会使其停止工作。
#  v
imgR = cv2.imread('Yeuna9x.png',0)
imgL = cv2.imread('SuXT483.png',0)
#  ^