加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Matlab计算图像的熵值(信息熵)

(2012-05-04 21:52:02)
标签:

matlab

图像处理

分类: Matlab

在图像处理中,图像的熵表征了图像信息量的大小。最近做小波变换,需要计算不同尺度下,不同自带的熵。由此引出了本文熵的计算代码。

function result=imgentropy(img)
%img必须为灰度图像(2-D)
%written by hangbing6174,CUMT
%
[M,N]=size(img);
imax=ceil(max(max(img)));
temp=zeros(1,imax);
%对图像的灰度值在[0,imax]上做统计
for m=1:M;
    for n=1:N;
        if img(m,n)==imax;
            i=imax+1;
        else
            i=fix(img(m,n))+1;
        end
        temp(i)=temp(i)+1;
    end
end

temp=temp./(M*N);
%由熵的定义做计算
resul=0;
for i=1:length(temp)
    if temp(i)==0;
        resul=resul;
    else
        resul=resul-temp(i)*log2(temp(i));
    end
end
result=resul;

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有