📜  Python OpenCV – 立体图像的深度图

📅  最后修改于: 2022-05-13 01:54:59.527000             🧑  作者: Mango

Python OpenCV – 立体图像的深度图

OpenCV是用于计算机视觉、机器学习和图像处理的大型开源库,现在它在实时操作中发挥着重要作用,这在当今的系统中非常重要。
注:更多信息请参考OpenCV简介

深度图:深度图是一张图片,其中每个像素都有深度信息(而不是 RGB),它通常表示为灰度图片。深度信息是指场景物体表面到视点的距离。可以在此处找到像素值深度图的示例:使用直方图的像素值深度图

立体图像:有轻微偏移的两张图像。例如,从中心拍摄对象的照片。将相机向右移动 6 厘米,同时将对象保持在图像的中心。在两张图片中寻找相同的东西,并根据位置差异推断深度。这称为立体匹配。为了获得最佳结果,请避免失真。

方法

  • 收集或拍摄立体图像。
  • 导入 OpenCV 和 matplotlib 库。
  • 读取左右图像。
  • 使用 stereo.compute 计算视差。

例子 :
示例图像:

剩下

Python3
# import OpenCV and pyplot
import cv2 as cv
from matplotlib import pyplot as plt
 
# read left and right images
imgR = cv.imread('right.png', 0)
imgL = cv.imread('left.png', 0)
 
# creates StereoBm object
stereo = cv.StereoBM_create(numDisparities = 16,
                            blockSize = 15)
 
# computes disparity
disparity = stereo.compute(imgL, imgR)
 
# displays image as grayscale and plotted
plt.imshow(disparity, 'gray')
plt.show()


输出:

视差图输出