FPMI.m
上传用户:xueli1969
上传日期:2022-07-27
资源大小:19k
文件大小:1k
源码类别:

通讯编程文档

开发平台:

Matlab

  1. function mi=FPMI(I0,I1,ta,ca) % 增加 ta ,和 canny范围
  2. %ta=7;  % 均方差
  3. width=3*ta;
  4. ssq=ta^2;
  5. [x,y]=meshgrid(-width:width,-width:width);
  6. e1 = exp(-(x.*x+y.*y)/(2*ssq)) /(0.5*pi*ssq);
  7. [M,N]=size(I0);
  8. I0=edge(I0,'canny',ca);
  9. I1=edge(I1,'canny',ca);
  10. I0=double(I0);
  11. I1=double(I1);
  12. b0=zeros(M,N);
  13. b1=zeros(M,N);
  14. for i=(3*ta+1):(M-3*ta)
  15.     for j=(3*ta+1):(N-3*ta)
  16.        if I0(i,j)~=0
  17.            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;
  18.        end
  19.        if I1(i,j)~=0
  20.            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;
  21.        end       
  22.     end
  23. end
  24. mi=MI(b0,b1);