1.算法原理
SAD(Sum of absolute differences)是一种图像匹配算法。用公式表示为:
SAD(u,v) = Sum{|Left(u,v) - Right(u,v)|} 选择最小值。基本思想:差的绝对值之和。此算法常用于图像块匹配,将每个像素对应数值之差的绝对值求和,据此评估两个图像块的相似度。该算法快速、但并不精确,通常用于多级处理的初步筛选。
2.基本流程
输入:两幅图像,一幅Left,一幅Right
对左图,依次扫描,选定一个锚点:
(1)构造一个小窗口,类似于卷积核;
(2)用窗口覆盖左边的图像,选择出窗口覆盖区域内的所有像素点;
(3)同样用窗口覆盖右边的图像并选择出覆盖区域的像素点;
(4)左边覆盖区域减去右边覆盖区域,并求出所有像素点灰度差的绝对值之和;
(5)移动右边图像的窗口,重复(3)-(4)的处理(这里有个搜索范围,超过这个范围跳出);
(6)找到这个范围内SAD值最小的窗口,即找到了左图锚点的最佳匹配的像素块。

下面我写一下对于这个算法的理解:
我们要构造一个窗口D分别用于覆盖左边图像和右边图像,窗口的size大小可以自己去定义,然后用D窗口圈出了AB两幅图像后,我们需要左右窗口内的选定的像素做差,然后求取其绝对值,并且对绝对值求和。在视差范围内移动窗口 ,并重复作差,求取绝对值,并求和。找到最小的匹配块,并且标记记录下来
3、参考代码
clear all
clc
left=double(rgb2gray(imread('left.jpg')));
right=double(rgb2gray(imread('right.jpg')));
[m n]=size

本文介绍了SAD(Sum of absolute differences)算法的原理和基本流程,用于图像匹配。通过比较两幅图像像素差的绝对值之和来评估匹配度,常用于图像块匹配的初步筛选。文章详细阐述了算法的实现步骤,并提出了优化思路,减少冗余计算,提高计算效率。同时,提供了参考代码和进一步改进的思考。
最低0.47元/天 解锁文章
757

被折叠的 条评论
为什么被折叠?



