📄 xiefangxiangguan.m
字号:
clear
m=1;
n=1;
I1=imread('before.tif');
I1=double(I1);
I2=imread('after.tif');
I2=double(I2);
[M N]=size(I1);
f1ave=zeros(M,N);
f2ave=zeros(M,N);
for i=1:M
for j=1:N
f1sum=0.0;
f2sum=0.0;
nn=0;
for k=-m:m
for l=-n:n
if ((i+k)<1 || (j+l)<1 || (i+k)>M || (j+l)>N)
f1sum=f1sum;
f2sum=f2sum;
else
f1sum=f1sum+I1(i+k,j+l);
f2sum=f2sum+I2(i+k,j+l);
nn=nn+1;
end
end
end
f1ave(i,j)=f1sum/nn;
f2ave(i,j)=f2sum/nn;
end
end
f1dif=I1-f1ave;
f2dif=I2-f2ave;
for i=1:M
for j=1:N
cmult=0.0;
c1=0.0;
c2=0.0;
for k=-m:m
for l=-n:n
if ((i+k)<1 || (j+l)<1 || (i+k)>M || (j+l)>N)
cmult=cmult;
c1=c1;
c2=c2;
else
cmult=cmult+f1dif(i+k,j+l)*f2dif(i+k,j+l);
c1=c1+f1dif(i+k,j+l)*f1dif(i+k,j+l);
c2=c2+f2dif(i+k,j+l)*f2dif(i+k,j+l);
end
end
end
cmultave(i,j)=cmult/(2*m+1)/(2*n+1);
c1ave(i,j)=c1/(2*m+1)/(2*n+1);
c2ave(i,j)=c2/(2*m+1)/(2*n+1);
end
end
cxie=cmultave./sqrt(c1ave.*c2ave);
I=255.*(1-abs(cxie));
I=uint8(I);
imshow(I);
imwrite(I,'Isub.tif');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -