使用MATLAB计算一幅图像的熵

公式

熵的计算公式:
H ( x ) = − ∑ i = 1 n P ( a i ) ∗ l o g P ( a i ) H(x)=-\sum_{i=1}^{n}P(a_i)*logP(a_i) H(x)=i=1nP(ai)logP(ai)
其中P(ai)为某一事件发生的概率,式中对数一般取2为底,单位为比特。

编程实现

使用MATLAB计算一幅图像的熵,代码如下:

clc
clear
close all
%---------------------------------
%求一幅图像的熵值
%---------------------------------
I=imread('rice.png');
[C,L]=size(I); %求图像的规格
Img_size=C*L; %图像像素点的总个数
G=256; %图像的灰度级
H_x=0;
nk=zeros(G,1);%产生一个G行1列的全零矩阵
for i=1:C
for j=1:L
Img_level=I(i,j)+1; %获取图像的灰度级
nk(Img_level)=nk(Img_level)+1; %统计每个灰度级像素的点数
end
end
for k=1:G  %循环
Ps(k)=nk(k)/Img_size; %计算每一个像素点的概率
if Ps(k)~=0; %如果像素点的概率不为零
H_x=-Ps(k)*log2(Ps(k))+H_x; %求熵值的公式
end
end
H_x  %显示熵值

本程序中使用MATLAB自带的图片,所计算的熵为:
在这里插入图片描述

  • 38
    点赞
  • 274
    收藏
    觉得还不错? 一键收藏
  • 18
    评论
评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值