图像的局部熵

clear all;
close all;
clc;

img=imread('lena.jpg');
[m n]=size(img);
w=3;    %模板半径
imgn=zeros(m,n);
for i=1+w:m-w
    for j=1+w:n-w
        
        Hist=zeros(1,256);
        for p=i-w:i+w
            for q=j-w:j+w
                Hist(img(p,q)+1)=Hist(img(p,q)+1)+1;    %统计局部直方图
            end
        end
        Hist=Hist/sum(Hist);
        for k=1:256
            if Hist(k)~=0
               imgn(i,j)=imgn(i,j)+Hist(k)*log(1/Hist(k));  %局部熵
            end
        end
        %{  
        p=sum(sum(img(i-w:i+2,j-w:j+w)));   %这里是按第一个公式写的
        s=img(i-w:i+w,j-w:j+w)/p;
        imgn(i,j)=-sum(sum(s.*log(s)));
        %}
    end
end
imshow(imgn,[])

imgn=entropyfilt(img);         %系统的局部熵函数
figure;
imshow(imgn,[])


版权声明:本文为u012809610原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。