在本教程中,我们将了解如何使用 OpenCV 包在 Python 中从立体图片制作深度图。但首先,让我们了解一下立体图片和图像深度的概念。
当我们走路或跑步时,我们观察到靠近我们的物体似乎比远处的物体移动得更快。这种潜在的效果被称为“视差”。
这种现象可用于从任何视线中获取几何信息。我们可以从不同角度从同一场地的许多照片来估计各种事物,其中之一就是组件的间隙。
这个距离被称为图像的深度,并且图片被称为立体图像。现在,我们可以通过研究这些渲染之间的点的跨度来确定这些区域与相机的距离。
导入库/模块
让我们首先导入用例所需的库。我们将使用numpy 库、OpenCV和matplotlib进行绘图。
1
2
3
|
import numpy as np import cv2 from matplotlib import pyplot as plt |
加载立体图像
现在让我们加载立体图像。
1
2
|
imgL = cv2.imread( 'input_images/Stereo_Image_1.jpg' , 0 ) imgR = cv2.imread( 'input_images/Stereo_Image_2.jpg' , 0 ) |
创建深度图
该StereoBM_create()
方法将用于生成深度图。我们可以根据需要调整设置。numDisparities 接受最大 255 的数字(可被 16 整除),但 blockSize 接受最大 25 的值。
1
2
3
4
5
6
|
stereo = cv2.StereoBM_create(numDisparities = 96 , blockSize = 15 ) disparity = stereo.compute(imgL,imgR) plt.figure(figsize = ( 20 , 10 )) plt.imshow(disparity, 'disparity' ) plt.xticks([]) plt.yticks([]) |
我们可以使用深度图来计算深度。这包括摄像机的布置及其与图像差异的相互作用。这超出了本教程的范围,因此我们不能再进一步。
关于如何使用 OpenCV 在 Python 中从立体图片构建深度图的教程到此结束。大部分工作仍然由您承担,因为您必须通过分析选择适当的地图参数。
结论
恭喜!您刚刚学习了如何使用 OpenCV 包在 Python 中从立体图片制作深度图。希望你喜欢它!😇
喜欢该教程吗?无论如何,我建议您查看下面提到的教程:
- 使用直方图可视化图像中的颜色 – Python OpenCV
- 使用 OpenCV 绘制形状 – 完整的操作指南
- 使用网络摄像头和 Python OpenCV 进行实时草图 [简单指南]
- 使用 OpenCV 的 Python 信用卡读卡器
感谢您抽出宝贵时间!希望你学到新东西!😄