计算图像的熵、编码效率、冗余度


给定一个256级灰度图像,每个像素码长为8位,计算图像的熵、编码效率、冗余度。

计算
图像的熵
I=imread('C:\Documents and Settings\Administrator\桌面\logo2.png');
I=double(I);
[C,R]=size(I);      %求图像的规格
Img_size=C*R;       %图像像素点的总个数
L=256;              %图像的灰度级
H_img=0;
nk=zeros(L,1);
for i=1:C
    for j=1:R
        Img_level=I(i,j)+1;                 %获取图像的灰度级          
        nk(Img_level)=nk(Img_level)+1;      %统计每个灰度级像素的点数
    end
end
for k=1:L
    Ps(k)=nk(k)/Img_size;                  %计算每一个灰度级像素点所占的概率
    if Ps(k)~=0;                           %去掉概率为0的像素点
    H_img=-Ps(k)*log2(Ps(k))+H_img;        %求熵值的公式
    end
end
H_img
%entropy(I)


具体的定义在豆丁上的一个PPT上有.完成实验时可以看到.讲的很清楚:
地址:http://www.docin.com/p-122927560.html

你可能感兴趣的:(计算图像的熵、编码效率、冗余度)