clear all;
close all;
clc;
le=double(imread('le.bmp'));
right=double(imread('right.bmp'));
[m n]=size(le);
w=4; %模板半径
depth=59; %最大偏移距离,同样也是最大深度距离
TL=cell(m,n); %存储左右图像每个点 Census 变换后的字符串
TR=cell(m,n);
for i=1+w:m-w %对左图进行 Census 变换
for j=1+w:n-w
lwin=le(i-w:i+w,j-w:j+w);
tL=cell(2*w+1,2*w+1);
a=le(i,j);
b=sum(sum(lwin))/(2*w+1)/(2*w+1);
t=0;
for p=1:2*w+1 %生成字符串矩阵
for q=1:2*w+1
t=t+abs(lwin(p,q)-b);
end
end
t=t/(2*w+1)/(2*w+1);
c='1';
for p=1:2*w+1
for q=1:2*w+1
if (lwin(p,q)>=a)&(abs(lwin(p,q)-b)<=t)
tL{
p,q
}='00';
elseif (lwin(p,q)>=a)&(abs(lwin(p,q)-b)>t)
tL{
p,q
}='01';
elseif (lwin(p,q)<a)&(abs(lwin(p,q)-b)<=t)
tL{
p,q
}='10';
elseif (lwin(p,q)<a)&(abs(lwin(p,q)-b)>t)
tL{
p,q