计算图像间互信息的报告

西北工业大学 自动化学院 信息工程专业

信息论实验报告

计算图像间的互信息

09030702 2007302171 马志强

2009/10/20

摘要:基于Matlab 程序, 计算出图像的熵和两幅差异不大的图像之间的互信息, 从而加深对互信息和熵值的理解. 关键字:Matlab工程应用, 信息熵与互信息.

一. 实验目的:

利用Matlab 计算两幅差异不大的图片熵值和互信息的值,并通过对图片差异较大区域进行裁剪,增多两个图片相同的区域,从而使得两图片的互信息的值增加,重发以上的操作多次,达到可获得的互信息的最大值,将获得的两个图片进行比较,验证互信息是否会根据图片拥有更多的相似区域而有所增大。

二. 实验步骤:

1. 获取图片:

由于rgb 图像的像素范围过大,所以实验所用的图片采用像素范围只有0—255的gray 图像(灰度图像);可以通过对同一张彩色图片进行灰度处理,也可以直接通过摄像设备获取灰度图像,拍照时应该注意尽量保持两张图片的差异尽可能的小,原因在于人为的摄像中存在不可避免的误差,从而导致最后的结果中的互信息值过于小,即使通过剪裁等手段也无法有效提高互信息的值;将选择好的图片进行剪裁,如果是直接拍摄的两张图片,可以略过此步骤,方法是只减少图片中的极少部分的像素,而且更改的像素希望是条状,然后保存两张图片,供实验中使用。

2. 上机操作:

将事先准备好的程序输入到Matlab 中,利用Matlab 的图片处理及转换功能,计算出图像的熵值和两个图像的互信息值,进行比较,以下附图及部分程序:

3. 记录数据

以上程序运行出的结果分列如下:

本部分程序用于计算出下面的图片的熵值

img=rgb2gray(a);

b=imread('2.jpg' );

[M,N]=size(img);

temp=zeros(M,N);

figure,imshow(img);

%To calculate the statistical character of image¡¯s gray level, which means to calculate the number of each gray

for m=1:M;

for n=1:N;

if img(m,n)==0;

i=1;

else

i=img(m,n);

end

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

end

end

temp=temp./(M*N);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%% Calculate the Entropy according to the defination%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

EntropyResult=0;

for i=1:length(temp)

if temp(i)==0;

EntropyResult=EntropyResult;

else

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

end

end

以下程序段用于计算下面两幅图片的互信息:

a=rgb2gray(a);

b=imread('2.jpg' );

b=rgb2gray(b);

%mi = MI(a,b)

%CaculateMI of a and b in the region of the overlap part

%To calculate the overlapping regions

[Ma,Na] = size(a);

[Mb,Nb] = size(b);

M=min(Ma,Mb);

N=min(Na,Nb);

hab= zeros(256,256);

ha = zeros(1,256);

hb= zeros(1,256);

if max(max(a))~=min(min(a))

a = (a-min(min(a)))/(max(max(a))-min(min(a)));

else

a = zeros(M,N);

end

if max(max(b))-min(min(b))

b = (b-min(min(b)))/(max(max(b))-min(min(b)));

else

b = zeros(M,N);

end

a = double(int16(a*255))+1;

b = double(int16(b*255))+1;

for i=1:M

for j=1:N

indexx= a(i,j);

indexy= b(i,j) ;

hab(indexx,indexy) = hab(indexx,indexy)+1;

ha(indexx) = ha(indexx)+1;

hb(indexy) = hb(indexy)+1;

end

end

hsum= sum(sum(hab));

index = find(hab~=0);

p = hab/hsum;

Hab= sum(sum(-p(index).*log(p(index))));

hsum= sum(sum(ha));

index = find(ha~=0);

p = ha/hsum;

Ha = sum(sum(-p(index).*log(p(index))));

hsum= sum(sum(hb));

index = find(hb~=0);

p = hb/hsum;

Hb= sum(sum(-p(index).*log(p(index))));

mi = Ha+Hb-Hab

EntropyResult =

1.9475

其中EntropyResult 为图片的信息熵,mi 表示的是两个图片的互信息;

以下数据为对图片进行10次修改获得的互信息:

mi=0.0512

最后获得的两张图片,基本相同,如下图所示:

三. 实验结论:

利用Matlab 能够实现对两幅图片互信息的计算,扩展到工程中可为求项目的相似度提供有力的参考,同时,利用互信息能够高效地发现共通之处,就相同的部分采取措施,以获得希望达到的目的,如模拟仿真等,另外通过实验加深了对互信息及信息熵的理解,为以后的工作和学习提供了方便。

通过数据的收集:发现如下问题:

1. 对于灰度图片, 信息熵普遍不大于8, 故设想有256个色素组成的图片,1-256像素各一

个, 可通过计算得其信息熵为8, 故又如下猜想:对于灰度图片, 信息熵不大于8;

2. 图片剪裁时互信息不一定随着剪切程度的加深而呈现单调变化, 有可能呈现曲线变

化;

3. 色彩越丰富的图片, 可简单理解为熵值较高; 色彩分布差别不大的两张图片, 互信息会

比较大

四. 实验缺陷:

本次我使用的图片为素描图, 像素分布不广, 一定程度上影响了获得的信息量, 可能导 致获得的结论概括不高

.

西北工业大学 自动化学院 信息工程专业

信息论实验报告

计算图像间的互信息

09030702 2007302171 马志强

2009/10/20

摘要:基于Matlab 程序, 计算出图像的熵和两幅差异不大的图像之间的互信息, 从而加深对互信息和熵值的理解. 关键字:Matlab工程应用, 信息熵与互信息.

一. 实验目的:

利用Matlab 计算两幅差异不大的图片熵值和互信息的值,并通过对图片差异较大区域进行裁剪,增多两个图片相同的区域,从而使得两图片的互信息的值增加,重发以上的操作多次,达到可获得的互信息的最大值,将获得的两个图片进行比较,验证互信息是否会根据图片拥有更多的相似区域而有所增大。

二. 实验步骤:

1. 获取图片:

由于rgb 图像的像素范围过大,所以实验所用的图片采用像素范围只有0—255的gray 图像(灰度图像);可以通过对同一张彩色图片进行灰度处理,也可以直接通过摄像设备获取灰度图像,拍照时应该注意尽量保持两张图片的差异尽可能的小,原因在于人为的摄像中存在不可避免的误差,从而导致最后的结果中的互信息值过于小,即使通过剪裁等手段也无法有效提高互信息的值;将选择好的图片进行剪裁,如果是直接拍摄的两张图片,可以略过此步骤,方法是只减少图片中的极少部分的像素,而且更改的像素希望是条状,然后保存两张图片,供实验中使用。

2. 上机操作:

将事先准备好的程序输入到Matlab 中,利用Matlab 的图片处理及转换功能,计算出图像的熵值和两个图像的互信息值,进行比较,以下附图及部分程序:

3. 记录数据

以上程序运行出的结果分列如下:

本部分程序用于计算出下面的图片的熵值

img=rgb2gray(a);

b=imread('2.jpg' );

[M,N]=size(img);

temp=zeros(M,N);

figure,imshow(img);

%To calculate the statistical character of image¡¯s gray level, which means to calculate the number of each gray

for m=1:M;

for n=1:N;

if img(m,n)==0;

i=1;

else

i=img(m,n);

end

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

end

end

temp=temp./(M*N);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%%%% Calculate the Entropy according to the defination%%%%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

EntropyResult=0;

for i=1:length(temp)

if temp(i)==0;

EntropyResult=EntropyResult;

else

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

end

end

以下程序段用于计算下面两幅图片的互信息:

a=rgb2gray(a);

b=imread('2.jpg' );

b=rgb2gray(b);

%mi = MI(a,b)

%CaculateMI of a and b in the region of the overlap part

%To calculate the overlapping regions

[Ma,Na] = size(a);

[Mb,Nb] = size(b);

M=min(Ma,Mb);

N=min(Na,Nb);

hab= zeros(256,256);

ha = zeros(1,256);

hb= zeros(1,256);

if max(max(a))~=min(min(a))

a = (a-min(min(a)))/(max(max(a))-min(min(a)));

else

a = zeros(M,N);

end

if max(max(b))-min(min(b))

b = (b-min(min(b)))/(max(max(b))-min(min(b)));

else

b = zeros(M,N);

end

a = double(int16(a*255))+1;

b = double(int16(b*255))+1;

for i=1:M

for j=1:N

indexx= a(i,j);

indexy= b(i,j) ;

hab(indexx,indexy) = hab(indexx,indexy)+1;

ha(indexx) = ha(indexx)+1;

hb(indexy) = hb(indexy)+1;

end

end

hsum= sum(sum(hab));

index = find(hab~=0);

p = hab/hsum;

Hab= sum(sum(-p(index).*log(p(index))));

hsum= sum(sum(ha));

index = find(ha~=0);

p = ha/hsum;

Ha = sum(sum(-p(index).*log(p(index))));

hsum= sum(sum(hb));

index = find(hb~=0);

p = hb/hsum;

Hb= sum(sum(-p(index).*log(p(index))));

mi = Ha+Hb-Hab

EntropyResult =

1.9475

其中EntropyResult 为图片的信息熵,mi 表示的是两个图片的互信息;

以下数据为对图片进行10次修改获得的互信息:

mi=0.0512

最后获得的两张图片,基本相同,如下图所示:

三. 实验结论:

利用Matlab 能够实现对两幅图片互信息的计算,扩展到工程中可为求项目的相似度提供有力的参考,同时,利用互信息能够高效地发现共通之处,就相同的部分采取措施,以获得希望达到的目的,如模拟仿真等,另外通过实验加深了对互信息及信息熵的理解,为以后的工作和学习提供了方便。

通过数据的收集:发现如下问题:

1. 对于灰度图片, 信息熵普遍不大于8, 故设想有256个色素组成的图片,1-256像素各一

个, 可通过计算得其信息熵为8, 故又如下猜想:对于灰度图片, 信息熵不大于8;

2. 图片剪裁时互信息不一定随着剪切程度的加深而呈现单调变化, 有可能呈现曲线变

化;

3. 色彩越丰富的图片, 可简单理解为熵值较高; 色彩分布差别不大的两张图片, 互信息会

比较大

四. 实验缺陷:

本次我使用的图片为素描图, 像素分布不广, 一定程度上影响了获得的信息量, 可能导 致获得的结论概括不高

.


相关内容

  • 信息论与编码技术课程论文
  • 本科生课程论文 题 目: 互信息技术在数字图像配准中的应用 姓 名: 学 院: 理学与信息科学学院 专 业: 信息与计算科学 班 级: 学 号: 指导教师: 完成时间: 2011 年7 月1 日 2011年7月1日 课 程 论 文 任 务 书 学生姓名 指导教师 论文题目 互信息技术在数字图像配准中 ...

  • 试析佛教在印度衰落之因
  • 科技信息 .高校讲台o SCIENCE&TECHNOLOGYINFORMATION 2007年举+勉瓣 试析佛教在印度衰落之因 崔萍 (苏州大学社会学院江苏苏州215123) [摘要]世界四大宗教之一的佛教发源于印度,但却没有在这个国家发扬光大.其中有一系列内外因素的制约,而最重要的是其内部 ...

  • 基于灰度相关的图像匹配算法的改进
  • 第28卷第5期2007年9月应用光学 JournalofAppliedOptics V01.28No.5 Sep.2007 文章编号:1002-2082(2007)05-0536-05 基于灰度相关的图像匹配算法的改进 刘 莹1'2,曹剑中1,许朝晖1,田雁1,付同堂1'2,王锋"2 (1 ...

  • 基于PCNN的图像融合新方法
  • 第35卷第1期 2008年1月 文章编号:1003-501X(2008)0卜0126-05光电工程opto・Elec仃onic.,01.35.No.1Jan.2008EngiIlee血g 基于PCNN的图像融合新方法 余瑞星,朱冰,张科 (西北工业大学航天学院,西安710072) 摘要:本文提出了一 ...

  • 信息论基础
  • <信息论基础>课程教学大纲 课程编号:(0531305) 课程名称:信息论基础 参考学时:48 其中实验或上机学时:0 先修课及后续课:先修课:概率论.信号与系统 后续课:通信原理.数字图像处理.语音信号处理 说明部分 1.课程性质 本课程是电子信息类专业的技术基础课 2.课程教学的目的 ...

  • 第三版信息论答案
  • [2.1]设有12枚同值硬币,其中有一枚为假币.只知道假币的重量与真币的重量不同,但不知究竟是重还是轻.现用比较天平左右两边轻重的方法来测量.为了在天平上称出哪一枚是假币,试问至少必须称多少次? 解:从信息论的角度看, 1: 121"假币的重量比真的轻,或重"该事件发生的概率为P ...

  • 图像拼接调研报告
  • 图像拼接的调研报告 1. 图像拼接的意义和国内外研究现状 1.1 意义 图像拼接(image mosaic)技术是将一组相互间存在重叠部分的图像序列进行空间配准,经重采样融合后形成一幅包含各图像序列信息的宽视角场景的.完整的.高清晰的新图像的技术.图像拼接是数字图像处理领域的一个重要的研究方向,在摄 ...

  • 文本特征提取方法研究
  • 作 者:田文颖 文本特征提取方法研究 一.课题背景概述 文本挖掘是一门交叉性学科, 涉及数据挖掘.机器学习.模式识别.人工智能.统计学.计算机语言学.计算机网络技术.信息学等多个领域.文本挖掘就是从大量的文档中发现隐含知识和模式的一种方法和工具, 它从数据挖掘发展而来, 但与传统的数据挖掘又有许多不 ...

  • 一种基于相位一致性相关的多源遥感影像配准方法
  • ・其 他- 一种基于相位一致性相关的多源遥感影像配准方法 范登科,潘 励,叶沅鑫 (武汉大学遥感信息工程学院,武汉430079) 摘要:针对几何校正过程中多源遥感影像同名点匹配率低的问题,提出一种基于相位一致性相关的遥感影像配准方法.该方法首先使用多尺度Harris提取出不受高斯平滑影响.住置稳定的 ...