互信息matlab源代码

上传者: wei157896 | 上传时间: 2019-12-21 21:36:26 | 文件大小: 1KB | 文件类型: txt
function mi = MI(a,b) %Caculate MI of a and b in the region of the overlap part %计算重叠部分 [Ma,Na] = size(a); [Mb,Nb] = size(b); M=min(Ma,Mb); N=min(Na,Nb); %初始化直方图数组 hab = zeros(256,256); ha = zeros(1,256); hb = zeros(1,256); %归一化 if max(max(a))~=min(min(a)) a = (a-min(min(a)))/(max(max(a))-min(min(a))); else a = zeros(M,N); end if max(max(b))-min(min(b)) b = (b-min(min(b)))/(max(max(b))-min(min(b))); else b = zeros(M,N); end a = double(int16(a*255))+1; b = double(int16(b*255))+1; %统计直方图 for i=1:M for j=1:N indexx = a(i,j); indexy = b(i,j) ; hab(indexx,indexy) = hab(indexx,indexy)+1;%联合直方图 ha(indexx) = ha(indexx)+1;%a图直方图 hb(indexy) = hb(indexy)+1;%b图直方图 end end %计算联合信息熵 hsum = sum(sum(hab)); index = find(hab~=0); p = hab/hsum; Hab = sum(sum(-p(index).*log(p(index)))); %计算a图信息熵 hsum = sum(sum(ha)); index = find(ha~=0); p = ha/hsum; Ha = sum(sum(-p(index).*log(p(index)))); %计算b图信息熵 hsum = sum(sum(hb)); index = find(hb~=0); p = hb/hsum; Hb = sum(sum(-p(index).*log(p(index)))); %计算a和b的互信息 mi = Ha+Hb-Hab; %计算a和b的归一化互信息 %mi = hab/(Ha+Hb);

文件下载

评论信息

  • 冷雨0412 :
    代码运行没有问题,注释也很清晰。
    2020-03-05
  • Nemo1250529397 :
    很清楚 非常不错
    2018-12-18
  • qq_36429680 :
    下载了,在用中
    2018-02-04
  • zhurongrz :
    写的挺好的,但不是我需要的,仍然谢谢分享!
    2017-06-10
  • 都都521 :
    谢谢分享,帮了很大忙!
    2016-08-10

免责申明

【只为小站】的资源来自网友分享,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,【只为小站】 无法对用户传输的作品、信息、内容的权属或合法性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论 【只为小站】 经营者是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。
本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二条之规定,若资源存在侵权或相关问题请联系本站客服人员,zhiweidada#qq.com,请把#换成@,本站将给予最大的支持与配合,做到及时反馈和处理。关于更多版权及免责申明参见 版权及免责申明