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()
输出: