信息熵与图像熵

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

信电学院

信息论与编码实验报告书(2013/2014学年第二学期)

实验名称:信息熵与图像熵的计算

专业班级:通信1202

学生姓名:王渊

学号:120310201

指导教师:张龙

设计成绩:

2014年05月10 日

信息熵与图像熵计算

一实验目的

1 通过本实验复习MATLAB的基本命令,熟悉MATLAB下的基本函数

2 复习信息熵基本定义,能够自学图像熵定义和基本概念

二实验要求

1 能够写出MATLAB源代码,求信源的信息熵

2 根据图像熵基本知识,设计出MATLAB程序,求出给定图像的图像熵

三实验步骤

1. 求解信息熵过程:

①输入一个离散信源,并检查该信源是否是完备集。

②去除信源中符号分布概率为零的元素。

③根据平均信息量公式,求出离散信源的熵。

程序及运行结果记录:

function H = xxs(X)

if abs(sum(X) - 1) ~=0

error('不是完备集')

end

if find(X==0)

A(find(X==0))=[];

disp('去掉概率为零的元素');

A

end

H = -sum(X .* log2(X));

X=[0.2,0.5,0.3];

>> H=xxs(X)

H =1.4855

2. 图像熵计算过程:

①输入一幅图像,并将其转换成灰度图像。

②统计出图像中每个灰度阶象素概率。

③统计出图像中相邻两象素的灰度阶联合分布矩阵。

④根据图像熵和二阶熵公式,计算出一幅图像的熵。

程序及运行结果记录:

function [H1,H2]=txs(Y)

I=imread(Y); %读取图像

img=rgb2gray(I); %转化为灰度图像

imview(I),imview(Y);

[ix,iy]=size(Y); %计算图像大小

P1=imhist(Y)/(ix*iy); %获取图像数据直方图

temp=double(Y);

temp=[temp,temp(:,1)];

A=zeros(256,256); %定义256*256的零矩阵

for x=1:ix %统计出图像中相邻两象素的灰度阶联合分布矩阵

for y=1:iy

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

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

end

end

P2=A./(ix*iy);

H1=0;H2=0;

for i=1:256 %计算图像的熵 if P1(i)~=0

H1=H1-P1(i)*log2(P1(i));

end

for j=1:256

if P2(i,j)~=0

H2=H2-P2(i,j)*log2(P2(i,j));

end

end

end

H2=H2/2;

>>[H1,H2]=txs('asd3.jpg')

H1 =

6.7520

H2 =

4.9649

相关文档
最新文档