圖像的熵、聯合熵、互信息

圖像的熵和兩幅圖像的聯和熵的定義如下:

  其中,AB聯合概率分佈和關於A和關於B的邊緣概率分佈都可以由聯合直方圖歸一化獲得。


Matlab實現代碼如下:

(1)圖像的熵

function shang = ssshang(X)
[m,n,t]=size(X);     I3 = double(X)+1;
s(256) = 0;
for i = 1:m
    for j = 1:n
        va = I3(i,j);
        s(va) = s(va)+1;
    end
end
p = s./(m*n);
en = 0.;
for i = 1:256
    if p(i)~=0
       en = en+p(i)*log2(p(i));%概率取對數(以2爲底)再乘以概率 最後連加取反
    end
end
shang = -en;

(2)兩幅圖像的聯合熵


function abshang = ssshangab(X,Y)
[m,n,t]=size(X);     a = double(X)+1;
b = double(Y)+1;
hab=zeros(256,256);
for i = 1:m
    for j = 1:n
        index_x=a(i,j);
        index_y=b(i,j);
        hab(index_x,index_y)=hab(index_x,index_y)+1;
    end
end
p = hab./(m*n);
en = 0.;
for i = 1:256
    for j = 1:256
        if p(i,j)~=0
           en = en+p(i,j)*log2(p(i,j));%概率取對數(以2爲底)再乘以概率 最後連加取反
        end
    end
end
abshang = -en;


(3)兩幅圖像的互信息

MI = HA + HB - HAB

參考文章:http://www.ilovematlab.cn/thread-45649-1-1.html


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章