怎么用matlab计算图像熵

 我来答
英雄创业精神奇
2013-05-05 · TA获得超过1601个赞
知道小有建树答主
回答量:1454
采纳率:0%
帮助的人:1413万
展开全部
%---------------------------------
%求一幅数字图像的熵值
%---------------------------------
I=imread('lena.bmp');
%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)
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Sievers分析仪
2025-02-09 广告
是的。传统上,对于符合要求的内毒素检测,最终用户必须从标准内毒素库存瓶中构建至少一式两份三点标准曲线;必须有重复的阴性控制;每个样品和PPC必须一式两份。有了Sievers Eclipse内毒素检测仪,这些步骤可以通过使用预嵌入的内毒素标准... 点击进入详情页
本回答由Sievers分析仪提供
du瓶邪
2015-08-12 · TA获得超过2.4万个赞
知道大有可为答主
回答量:1.7万
采纳率:100%
帮助的人:3155万
展开全部
  function entr=yentropy(a)
  a=uint8(a); %这里a为8位的单色图像或24为的RGB彩色图像
  [m n l]=size(a);
  entr=0;
  for k=1:l
  hi=zeros(1,256);
  for i=1:m
  for j=1:n
  hi(a(i,j,k)+1)=hi(a(i,j,k)+1)+1; %求每种值的在图像中出现的次数
  end
  end
  hi=sort(hi,'descend');
  hi=hi./m./n; %求概率
  en=0.0;
  for i=1:256
  if hi(i)>0
  en=en-hi(i).*log2(hi(i)); %概率不为0 累加求熵
  else
  i=257; %否则停止
  end
  end
  entr=entr+en;
  end
  entr=entr/l; %当l=1时a为单色图像;
  当l=3时a为彩色图像,三个页面的熵平均.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式