您好,欢迎来到化拓教育网。
搜索
您的当前位置:首页信息熵与图像熵

信息熵与图像熵

来源:化拓教育网
信电学院

信息论与编码

实验报告书

实验名称 专业班级 学生姓名 学 号 指导教师 设计成绩 (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.99

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务