gusucode.com > 基于互信息的图像配准matlab源码程序 > 基于互信息的图像配准matlab源码程序/FPMI.m

    function mi=FPMI(I0,I1,ta,ca) % 增加 ta ,和 canny范围

%ta=7;  % 均方差
width=3*ta;
ssq=ta^2;
[x,y]=meshgrid(-width:width,-width:width);
e1 = exp(-(x.*x+y.*y)/(2*ssq)) /(0.5*pi*ssq);

[M,N]=size(I0);
I0=edge(I0,'canny',ca);
I1=edge(I1,'canny',ca);

I0=double(I0);
I1=double(I1);

b0=zeros(M,N);
b1=zeros(M,N);
for i=(3*ta+1):(M-3*ta)
    for j=(3*ta+1):(N-3*ta)
       if I0(i,j)~=0
           b0([(i-3*ta):(i+3*ta)],[(j-3*ta):(j+3*ta)])= b0([(i-3*ta):(i+3*ta)],[(j-3*ta):(j+3*ta)])+e1;
       end
       if I1(i,j)~=0
           b1([(i-3*ta):(i+3*ta)],[(j-3*ta):(j+3*ta)])= b1([(i-3*ta):(i+3*ta)],[(j-3*ta):(j+3*ta)])+e1;
       end       
    end
end

mi=MI(b0,b1);