1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > python 深度 视差 计算_OpenCV-Python教程:49.立体图像的深度图

python 深度 视差 计算_OpenCV-Python教程:49.立体图像的深度图

时间:2022-05-21 19:33:44

相关推荐

python 深度 视差 计算_OpenCV-Python教程:49.立体图像的深度图

基础

在上一节,我们看到了极线约束和其他相关术语。我们也看到了如果我们有同一场景的两张图像,我们可以从直觉的方法从里面获得更多信息。下面是一个图像,和一些数学公式证明这个直觉

上面的图包含等面积三角形,写出他们的等式会得到下面的结果:

x和x'是图像平面里的点对应的场景里的点和摄像机中心的距离。B是两个摄像机之间的距离(我们已知),f是摄像机焦距(已知)。所以,上面的等式说一个点在场景里的深度和对应图像点和他们摄像机中心点的距离差成反比。有了这个信息,我们可以得出图像里所有像素的深度。

所以它在两个图像里找对应的匹配点。我们已经看到了极线约束会让这个运算快捷和准确,当它找到了匹配,它也就找到了视差,让我们看看用OpenCV怎么做

编码

下面的代码片段展示了一个简单的创建视差图的过程。import numpy as np

import cv2

from matplotlib import pyplot as plt

imgL = cv2.imread('tsukuba_l.png',0)

imgR = cv2.imread('tsukuba_r.png',0)

stereo = cv2.createStereoBM(numDisparities=16, blockSize=15)

disparity = pute(imgL,imgR)

plt.imshow(disparity,'gray')

plt.show()

下面的图像包含原始图像(左边)和它的视差图(右边)。你可以看到结果被高度噪音污染了。调整numDisparities和blockSize的值,你可以得到更好结果。

END

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。