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,[]);