【计算机视觉07】视差计算图

一. 概念理解

1.视差:

左右双目图像中,两个匹配块中心像素的水平距离。视差越大越靠近摄像头,而视差小的像素离摄像机远。

2.窗口计算视差:

构造一个小窗口,用窗口覆盖左边的图像,选择出窗口覆盖区域内的所有像素点,同样用窗口覆盖右边的图像并选择出覆盖区域的像素点,左边覆盖区域减去右边覆盖区域,并求出所有像素点灰度差的绝对值之和。此算法常用于图像块匹配,将每个像素对应数值之差的绝对值求和,用来评估两个图像块的相似度。

3.影响视差的因素

1) 光学失真和噪声(亮度、色调、饱和度等失衡)
2) 平滑表面的镜面反射
3)投影缩减
4)透视失真
5) 低纹理
6) 重复纹理
7) 透明物体
8) 重叠和非连续

二. 视差计算步骤

  1. 首先要对相机进行标定
    标定的目的为获得相机的内外参,其基本原理是基于相机成像平面与空间的映射对应关系
  2. 立体标定
    获取左右相机的空间转换关系
  3. 极线校正
    同一个点在两幅图像上的映射,校正后两幅图片的点的坐标y值是一样的,可以减少待匹配的点数量
  4. 立体匹配
    求点跟点的视差,每个点的视差都求出来,就有了点的三维坐标了

三. NCC视差匹配

  • 对于原始的图像内任意一个像素点 ( P x , P y ) (Px,Py) (Px,Py)构建一个n×n 的邻域作为匹配窗口。然后对于目标相素位置 ( P x + d , P y ) (Px+d,Py) (Px+d,Py)同样构建一个n×n 大小的匹配窗口,对两个窗口进行相似度度量,这里的d 有一个取值范围。对于两幅图像来说,在进行NCC计算之前要对图像处理,也就是将两帧图像校正到水平位置,光心处于同一水平线上,此时极线是水平的,否则匹配过程只能在倾斜的极线方向上完成,会消耗更多的计算资源。
  • NCC计算公式如下:
    在这里插入图片描述

四. 代码

/# -*- coding: utf-8 -*-
from PIL import Image
from pylab import *
import cv2
f
  • 0
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值