2019-9-29 opencv摄像机标定与三维重构4-Depth Map from Stereo Images立体图像中的深度图(视差图)
官网参见https://docs.opencv.org/3.4.1/dd/d53/tutorial_py_depthmap.html
上一节中,我们学习了极线约束的概念和相关术语。主要包含:如果我们有同一个场景的2幅图像,我们就可以直观的获得图像的深度信息。下图和其中的数学公式可以证明该理论。
上图是上一节2幅图像间对极几何关系的等价三角形。它的等价方程式如下
disparity=x−x′=BfZdisparity=x−x^′=\frac{Bf}{Z}disparity=x−x′=ZBf
x 和x’ 分别是图像平面中的点到3D 空间中的点和到摄像机中心的距离。B是2个摄像机之间的距离,f是摄像机之间的焦距。简而言之,上面的等价方程告诉我们点的深度Z和对应的图像点与其相机中心的距离x - x’成反比。根据上面公式,我们可以得到图像中所有像素点的深度。
现在我们就可以找到2个图像之间的匹配点了。我们已经了解了极线约束可以使这个操作更快更精确。一旦找到匹配,就可以获得视差(disparity)。
disparity:原意为“差异”,在立体视觉中称为视差,空间中一点,在左右目所成图像的横坐标之差。
关于视差概念,可以参见https://blog.csdn.net/weixin_40367126/article/details/90753760
以下代码是获得视差图。
视差图是以图像对中任一幅图像为基准,其大小为该基准图像的大小,元素值为视差值的图像
图片下载在http://globalempiresoft.com/tools/AR/OpenCV-2.1.0/samples/c/
import cv2
import numpy as np
import glob
from matplotlib import pyplot as pltimgL = cv2.imread('scene_l.bmp',0)
imgR = cv2.imread('scene_r.bmp',0)
stereo = cv2.StereoBM_create(numDisparities=16, blockSize=15)
disparity = stereo.compute(imgL,imgR)
plt.imshow(disparity,'gray')
plt.show()
视差图结果如下
在上图中有很大的噪音。通过调整numDisparities和blockSize,可以获得更好的结果。
例子中使用图片如下
从视差图推导深度图参见https://www.jianshu.com/p/ee3872dc988b
2019-9-29 opencv摄像机标定与三维重构4-Depth Map from Stereo Images立体图像中的深度图(视差图)相关推荐
- 十五天掌握OpenCV——摄像机标定和3D重构!—摄像机标定
魏老师学生--Cecil:学习OpenCV-机器视觉之旅 基础 代码 设置 标定 畸变校正 反向投影误差 代码演示 Aim: 学习摄像机畸变以及摄像机的内部参数和外部参数: 对畸变图像进行修复. 基础 ...
- [OpenCV-Python] OpenCV 中摄像机标定和 3D 重构 部分 VII
部分 VII 摄像机标定和 3D 重构 OpenCV-Python 中文教程(搬运)目录 42 摄像机标定 目标 • 学习摄像机畸变以及摄像机的内部参数和外部参数 • 学习找到这些参数,对畸变图像进行 ...
- OpenCV-Python] OpenCV 中摄像机标定和 3D 重构 部分 VII
https://www.cnblogs.com/Undo-self-blog/p/8448500.html 42 摄像机标定 目标 • 学习摄像机畸变以及摄像机的内部参数和外部参数 • 学习找到这些参 ...
- Python+OpenCV:立体图像深度图(Depth Map from Stereo Images)
Python+OpenCV:立体图像深度图(Depth Map from Stereo Images) 理论 If we have two images of same scene, we can g ...
- MFC+OPENCV摄像机标定
摄像机的追踪标定 本文是我第一次在csdn上写的博客,有不详之处,望大家见谅,也希望大家多多支持. 废话不多说,直接进入正题.对于摄像机标定,是学习图像处理和机器视觉不可回避的话题,这方面的现有理论已 ...
- Opencv相机标定与3D重构---使用棋盘格来进行摄像机标定
让我们写一点代码来检测在一幅图像中的棋盘格,并获取他到摄像机的距离. 你可以使用同样的方法来针对任何已知三维几何结构的物体,这个物体可以在一幅图像中被检测到. 创建一个空的控制台项目. 载入一幅图片: ...
- 【笔记】摄像机标定和3D重构
目录 一.摄像机标定 1.设置 2.标定 3.畸变矫正 4.反向投影差 三.对极几何 四.深度地图 一.摄像机标定 单孔摄像机(照相机)会给图像带来很多畸变,畸变主要有 "径向畸变" ...
- 张正友摄像机标定的研究(MATLAB+OpenCV)
张正友 本科浙大,本来以为是中国人论文是中文呢,哎 张正友的主页: http://research.microsoft.com/en-us/um/people/zhang/Calib/ 不过里面的棋盘 ...
- Python+OpenCV:摄像机标定(Camera Calibration)
Python+OpenCV:摄像机标定(Camera Calibration) 理论 Some pinhole cameras introduce significant distortion to ...
最新文章
- java程序无法连接redis_无法使用jedis连接到redis
- 陈勋教授的脑电信号降噪视频与讲座总结
- ping的实现和代码分析
- 为SAP Analytics Cloud的story创建持久化页面
- 带有调试器的Apache Camel Eclipse工具
- Linux命令大全(文件管理)
- oracle imp 包,oracle imp
- 用python生成多个txt文件
- 一周畅销书速报 | 端午节特别版
- SQL Server导出MDF数据库文件
- [转载]MIS专业排名
- 虚拟机 VMware Workstation 16 PRO 的网络配置
- 你肯定用过手机护眼模式, 但你知道怎么将电脑Win10窗口背景色修改为护眼的淡绿色吗?(附带如何备份注册表)
- 网络安全工程师的简单介绍
- 学习笔记-磁盘存储管理
- 【NOIP2014】解方程【秦九韶】【高精度处理】
- 打造一支有服务能力的销售队伍
- 怎么区分静态网页和动态网页
- 送你一份2019年最新最全的技能图谱(附思维导图)!
- 云服务器训练神经网络