图像的视差匹配(Stereo Matching)

本文详细介绍了图像的视差匹配过程,包括SSD(Sum of Squared Differences)和NCC(Normalized Cross-Correlation)两种方法。在SSD中,通过计算像素差值的平方和寻找最小值来确定匹配;而NCC利用归一化的像素乘积,对光照变化有更强的鲁棒性。实验表明,当右眼图像增加常数值时,NCC的匹配效果比SSD更稳定,适合光照影响较大的情况。
摘要由CSDN通过智能技术生成

这里要求用我们自己计算得到的视差图和给的视差图作比较来比较我们得到的视差图的好坏程度,我视差图返回的值是计算得到的视差乘以3之后的图,所以在计算时我不是两个值相差大于1,而是大于3,因为两个图像都乘3了,所以要大于3,我传入的参数是两个图像的矩阵,因为我是写了一个脚本咯跑所有测例的,在脚本里边已经把图像读出来了


<span style="font-size:18px;">function [percentnumberbadpixels] = PercentBadPixels(mydisparitymap,groundtruthdisparitymap)
mydisparitymap = double(mydisparitymap);
groundtruthdisparitymap = double(groundtruthdisparitymap);
[Rmydisparitymap, Cmydisparitymap] = size(mydisparitymap);
numbadpixels = 0;
for i = 1:Rmydisparitymap
    for j = 1:Cmydisparitymap
        if (abs(mydisparitymap(i,j) - groundtruthdisparitymap(i,j)) > 3)
              numbadpixels = numbadpixels+1;
        end
    end
end
percentnumbadpixels = numbadpixels/(Rmydisparitymap*Cmydisparitymap*1.0);
percentnumbadpixels = floor(percentnumbadpixels*100);
str = strcat(num2str(percentnumbadpixels),'%');
percentnumberbadpixels = str;
end
</span>

SSD:

  左视差图


  右视差图

   

实现细节:

   输入的图像是24位的图像,但是这些计算都是基于强度(intensities)来计算的,在matlab中把彩色图转为灰度图的函数rgb2gray实质上就是转为其强度灰度图像。

原理:

如图:


对于同一图像,左眼看到的图像相对于右眼看到的图像的位置是不一样的,如上图,对于相同位置在右眼看到的图像的位置在左眼看到的图像的位置的前边,所以左视差图和右视差图的搜索方法不同,对于左视差图:

 由于其位置比右眼看到的位置要远,则对于在右眼图像相同的物理位置应该往该位置的前边搜索才可能找到最相近的部分,即要减去d

同理,对于右视差图则刚好相反,要加d

实现细节:

1)首先把图像通过intensities转为灰度图像:


2)设定搜索深度

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值