雙目立體匹配SAD的matlab源碼分析

clear all
clc
left=double(rgb2gray(imread('left.png')));
right=double(rgb2gray(imread('right.png')));

[m n]=size(left);

w=9;       %窗口半徑
depth=20;    %最大偏移距離,同樣也是最大深度距離
imgn=zeros(m,n);
for i=1+w:m-w
   for j=1+w+depth:n-w 
       tmp=[];
       lwin=left(i-w:i+w,j-w:j+w);
       for k=0:-1:-depth        
           rwin=right(i-w:i+w,j-w+k:j+w+k);
           diff=lwin-rwin;
           tmp=[tmp sum(abs(diff(:)))];
       end
       [junk imgn(i,j)]=min(tmp);   %獲得最小位置的索引
   end
end
imshow(imgn,[]);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章