首页 - 币安交易所 > matlab图像信息熵(matlab计算图像熵)

matlab图像信息熵(matlab计算图像熵)

发布于:2022-12-29 作者:沫沫 阅读:15

今天给各位分享matlab图像信息熵的知识,其中也会对matlab计算图像熵进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

matlab中的entropy函数是如何实现的?

(1)先用Hist函数对x(n)的赋值范围进行分块,比如赋值范围在0~10的对应第

一块,10~20的第二块,以此类推。这之前需要对x(n)做一些归一化处理

(2)统计每一块的数据个数,并求出相应的概率

(3)用信息熵公式求解

以上求解方法获得的虽然是近似的信息熵,但是一般认为,这么做是没有问题的

求一维序列的信息熵的matlab程序代码如下:(已写成调用的函数形式)

测试程序:

fs=12000;

N=12000;

T=1/fs;

t=(0:N-1)*T;

ff=104;

sig=0.5*(1+sin(2*pi*ff*t)).*sin(2*pi*3000*t)+rand(1,length(t));

Hx=yyshang(sig,10)

如何用matlab计算已知图像的熵

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为彩色图像,三个页面的熵平均.

如何用matlab软件计算一幅图像信息的熵以及两幅图像间的联合熵?

%计算一副图像的熵

%随机生成图像

A=floor(rand(8,8).*255);

[M,N]=size(A);

temp=zeros(1,256);

%对图像的灰度值在[0,255]上做统计

for

m=1:M;

for

n=1:N;

if

A(m,n)==0;

i=1;

else

i=A(m,n);

end

temp(i)=temp(i)+1;

end

end

temp=temp./(M*N);

%由熵的定义做计算

result=0;

for

i=1:length(temp)

if

temp(i)==0;

result=result;

else

result=result-temp(i)*log2(temp(i));

end

end

result

%计算联合熵

%随机生成图像

A=floor(rand(8,8).*255);

B=floor(rand(8,8).*255);

[M,N]=size(A);

temp=zeros(256,256);

%对图像的灰度值成对地做统计

for

m=1:M;

for

n=1:N;

if

A(m,n)==0;

i=1;

else

i=A(m,n);

end

if

B(m,n)==0;

j=1;

else

j=B(m,n);

end

temp(i,j)=temp(i,j)+1;

end

end

temp=temp./(M*N);

%由熵的定义做计算

result=0;

for

i=1:size(temp,1)

for

j=1:size(temp,2)

if

temp(i,j)==0;

result=result;

else

result=result-temp(i,j)*log2(temp(i,j));

end

end

end

result

matlab—熵权法

%输入

x=[

3.69 3.71 3.65 3.87

3.71 4.07 3.87 4.42

4.30 3.75 3.63 4.43

4.08 3.78 3.65 4.49

3.93 3.87 4.37 4.47

4.18 3.96 3.72 4.46

];

% 函数shang.m, 实现用熵值法求各指标(列)的权重及各数据行的得分

% x为原始数据矩阵, 一行代表一个组, 每列对应一个成分指标

% s返回各行得分, w返回各列权重

[n,m]=size(x); % n=响应面/实验组数, m=成分指标

%% 数据的归一化处理

[X,ps]=mapminmax(x',0,1);

ps.ymin=0.002; % 归一化后的最小值

ps.ymax=0.996; % 归一化后的最大值

ps.yrange=ps.ymax-ps.ymin; % 归一化后的极差,若不调整该值, 则逆运算会出错

X=mapminmax(x',ps);

% mapminmax('reverse',xx,ps); % 反归一化, 回到原数据

X=X';  % X为归一化后的数据

%% 计算第j个指标下,第i个记录占该指标的比重p(i,j)

for i=1:n

    for j=1:m

        p(i,j)=X(i,j)/sum(X(:,j));

    end

end

%% 计算第j个指标的熵值e(j)

k=1/log(n);

for j=1:m

    e(j)=-k*sum(p(:,j).*log(p(:,j)));

end

d=ones(1,m)-e;  % 计算信息熵冗余度

w=d./sum(d)    % 求权值w

y(:,1)=x(:,1)*w(1)+x(:,2)*w(2);%输出

y

怎么用matlab计算图像熵

%---------------------------------

%求一幅数字图像的熵值

%---------------------------------

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)

图像信息熵公式中的概率怎么求?

你说的对。

应该除。

p(i,j) = x(i,j) / ∑i,jx(i,j) 是对的。

概率,起码加起来应该等于1.

让你乘起来的【p(i,j) = x(i,j)∑i,jx(i,j) 】,是和你开玩笑吧。。。

关于matlab图像信息熵和matlab计算图像熵的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

二维码

扫一扫关注我们

版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件至举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。

标签: #matlab图像信息熵

相关文章

发表评论