美文网首页
OpenCV-Python教程:49.立体图像的深度图

OpenCV-Python教程:49.立体图像的深度图

作者: xxxss | 来源:发表于2017-06-30 11:50 被阅读1431次

基础

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

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

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 = stereo.compute(imgL,imgR)
plt.imshow(disparity,'gray')
plt.show()

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

END

相关文章

  • OpenCV-Python教程:49.立体图像的深度图

    基础 在上一节,我们看到了极线约束和其他相关术语。我们也看到了如果我们有同一场景的两张图像,我们可以从直觉的方法从...

  • OpenCV-Python 立体图像的深度图 | 五十二

    目标 在本节中, 我们将学习根据立体图像创建深度图。 基础 在上一节中,我们看到了对极约束和其他相关术语等基本概念...

  • 3维数据表达

    RGB-D(深度图像) 深度图像 = 普通的RGB三通道彩色图像+Depth MapRGB-D图像其实是两幅图像,...

  • RGB-D(深度图像) & 图像深度

    RGB-D(深度图像) 深度图像 = 普通的RGB三通道彩色图像 + Depth Map   在3D计算机...

  • Halcon绘制彩色深度图

    此小文主要介绍颜色空间的转换,将深度图转为彩色,借以说明颜色转换与图像通道,下面是效果: 深度图的生成 深度图的生...

  • CorelDRAW快速制作幻影图像效果

    本教程讲解非常受欢迎的幻影图像效果(Anaglyph 3d),也叫图像分色立体效果,这其中我们要用到CorelDR...

  • opencv_python

    my github 不错的博客 CSDN专栏 OpenCV-Python教程

  • 5.论文阅读:Guided Depth Enhancement

    1. 假设我们得到一个对齐的深度 - 颜色图像对。 深度图包含无效区域或者具有比成对彩色图像低的分辨率。 彩色图像...

  • OpenCV+Python 频域分析

    参考: opencv-python官方文档《刚萨雷斯数字图像处理(MATLAB版)》 图像处理中的傅里叶变换 二维...

  • OpenCV-Python教程:18.图像轮廓

    什么是轮廓? 轮廓可以被简单解释为一个连接所有连续点的曲线(沿边界),有同样的颜色和亮度。轮廓在做形状分析和目标检...

网友评论

      本文标题:OpenCV-Python教程:49.立体图像的深度图

      本文链接:https://www.haomeiwen.com/subject/wqudsttx.html