利用矩阵运算处理图像Word下载.docx

上传人:b****3 文档编号:7865556 上传时间:2023-05-09 格式:DOCX 页数:17 大小:1.02MB
下载 相关 举报
利用矩阵运算处理图像Word下载.docx_第1页
第1页 / 共17页
利用矩阵运算处理图像Word下载.docx_第2页
第2页 / 共17页
利用矩阵运算处理图像Word下载.docx_第3页
第3页 / 共17页
利用矩阵运算处理图像Word下载.docx_第4页
第4页 / 共17页
利用矩阵运算处理图像Word下载.docx_第5页
第5页 / 共17页
利用矩阵运算处理图像Word下载.docx_第6页
第6页 / 共17页
利用矩阵运算处理图像Word下载.docx_第7页
第7页 / 共17页
利用矩阵运算处理图像Word下载.docx_第8页
第8页 / 共17页
利用矩阵运算处理图像Word下载.docx_第9页
第9页 / 共17页
利用矩阵运算处理图像Word下载.docx_第10页
第10页 / 共17页
利用矩阵运算处理图像Word下载.docx_第11页
第11页 / 共17页
利用矩阵运算处理图像Word下载.docx_第12页
第12页 / 共17页
利用矩阵运算处理图像Word下载.docx_第13页
第13页 / 共17页
利用矩阵运算处理图像Word下载.docx_第14页
第14页 / 共17页
利用矩阵运算处理图像Word下载.docx_第15页
第15页 / 共17页
利用矩阵运算处理图像Word下载.docx_第16页
第16页 / 共17页
利用矩阵运算处理图像Word下载.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

利用矩阵运算处理图像Word下载.docx

《利用矩阵运算处理图像Word下载.docx》由会员分享,可在线阅读,更多相关《利用矩阵运算处理图像Word下载.docx(17页珍藏版)》请在冰点文库上搜索。

利用矩阵运算处理图像Word下载.docx

是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。

它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。

MATLAB和Mathematica、Maple并称为三大数学软件。

它在数学类科技应用软件中在数值计算方面首屈一指。

MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。

MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。

在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。

可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用。

1.2课题的背景

MATLAB中的图像处理工具箱几乎包括了经典图像处理的所有方面,从基本的图像增强到图像分割,MATLAB都提供了简便的函数调用来实现许多经典的图像处理方法。

数字图像处理工具箱函数包括12类:

(1)图像文件操作和显示函数;

(2)图像的矩阵表示及运算函数;

(3)图像增强函数;

(4)图像变换函数(5)图像的空间变换函数;

(6)二值形态学操作函数;

(7)图像分析和理解函数;

(8)其它的一些图像处理函数。

另外MATLAB提供了对多种图像文件格式的读写和显示,这使得MATLAB在集成环境中进行图像处理的实验模拟非常方便。

MATLAB图像处理的前景广阔。

主要在以下几个方面应用比较广泛,①搜索方向:

基于内容的图像或视频搜索是很多搜索公司研究的热点。

要想进入这个领域,必须有很强的编程能力,很好的图像处理和模式识别的背景。

②医学图像方向:

由于医疗器械的主要功能是成像,必然涉及到对图像的处理,做图像处理的很有机会进入这些公司。

③计算机视觉和模式识别方向:

目前视频监控是一个热点问题,做跟踪和识别的可以在这个方向找到一席之地。

④视频方向:

一般的高校或者研究所侧重在标准的制定和修改以及技术创新方面,而公司则侧重在编码解码的硬件实现方面。

其实一般来说,只要涉及到成像或者图像的基本都要图像处理方面的人。

比方说一个成像设备,在输出图像之前需要对原始图像进行增强或者去噪处理,存储时需要对图像进行压缩,成像之后需要对图像内容进行自动分析,这些内容都是图像处理的范畴。

本文从实际应用的角度介绍了如何利用MATLAB通过矩阵运算进行图像的简单处理。

2MATLAB图像处理工具箱简介

2.1实验原理:

理论上讲,图像时一种二维的连续函数,然而在计算机上对图像进行数字处理的时候,首先必须对其在空间和亮度上进行数字化,这就是图像的采样和量化的过程,二维图像进行均匀采样,就可以得到一副离散化成M×

N样本的数字图像,该数字图像是一个整数阵列,因而用矩阵来描述该数字图像是最直观、最便捷的,而MATLAB得长处就是处理矩阵的运算,因此用MATLAB处理数字图像非常方便。

MATLAB支持五种图像类型,即索引图像、灰度图像、二值图像、RGB图像和多帧图像阵列;

支持BMP、HDF、JPEG、PCX、PNG、TIFF、XWD、CUR、ICO等图像文件格式的读、写和显示。

MATLAB对图像的处理功能主要集中在它的图像处理工具箱中。

图像处理工具箱由一系列支持图像处理操作的函数组成,可以进行诸如几何操作、线性滤波和滤波器设计、图像变换、图像分析与图像增强、二值图像操作以及形态学处理等图像处理操作。

2.2图像处理工具函数简介:

·

imread

Imread函数用于读入各种图像文件,其一般用法为[I,map]=imread(‘filename’)。

其中I为读出的图像数据矩阵,map为读出的颜色表数据,filename为读取的图像文件。

imwrite

Imwrite函数用于输出图像,其语法格式为Imwrite(I,filename),其作用是将图像数据矩阵写入文件filename中。

imshow

Imshow函数式最常用的显示各种图像的函数,其语法格式为Imshow(I,map)。

当需要显示多幅图像时,可以使用figure语句,它的功能就是重新打开一个图像显示窗口。

例如:

[I,map]=imread(‘face.gif’)

Imshow(I,map)

[J,map]=imread(‘flowers.gif’);

Figure,imshow(J,map);

size

Size函数用来查看图像的大小。

subplot

Subplot函数的作用是将多幅图像显示在同一个图像显示对话框中,其语法格式为

Subplot(m,n,p)

其作用就是将一个图像显示对话框分成m行n列,并显示第p副图像。

2.3数字图形的基本操作:

1)读取图像xiao.png,MATLAB命令如下:

>

[I,map]=imread(‘xiao.png’)

矩阵如图2.1所示

2)查看图像的大小,MATLAB命令如下:

size(I)

Ans=

24243

size(map)

00

3)显示图像,MATLAB命令如下:

imshow(I,map)

结果如图2.2所示

4)修改绿色矩阵数据

I(:

:

2)=I(:

2)*0

结果如图2.3所示

图2.1png类型数字图像矩阵

图2.2显示图像的大小和数字图像

图2.3变色后的结果

3图像运算处理

数字图像一般可以用矩阵来描述,而图像的代数运算是逐像素进行的,是指对两幅图像进行点对点的加减乘除运算而得到输出图像的运算,所以图像的代数运算实际就是矩阵的加减乘除运算。

对于相加和相乘的情形,可能不止两幅图像参加运算。

在一般情况下,输入值也可能为常数。

需要注意的是,在进行算术运算时,如果所操作的图像为两个以上,则需要这些图像的大小应相等。

四种图像处理代数运算的数学表达式如下:

其中x,y表示图像的位置坐标,A(x,y)和B(x,y)为输入图像,而C(x,y)为输出图像。

3.1图像相加

图像相加的一个重要应用是对同一场景的多幅图像求平均值。

这个运算被经常用来有效地降低随机噪声的影响。

在求平均值的过程中,图像的静止部分不会改变,而对每一幅图像,各不相同的噪声图案则累积很慢,对M幅图像进行平均,使图像中每一点的平方信噪比提高了M倍,因此达到了提高信噪比降低噪声的作用。

为了比较结果,首先人为的给一幅图像中加入噪声,再通过多次相加求平均的方法消除所加入的噪声,在MATLAB中提供了给图像加入噪声的函数imnoise。

Imnoise的语法格式为:

J=imnoise(I,type,parameters)

其作用为返回对原始图像I添加典型噪声的有噪图形J,参数type和parameters用于确定噪声的类型和相应的参数。

下面从实际操作中来看一下这些函数的作用:

1)读取原图像,并往原图像中加入噪声,并显示对比效果,结果如图3.1所示。

I=imread(‘001.jpg’)%读取原图像

size(I)%原图像的大小

4006003

J=imnoise(I,’gaussian’,0,0.2)%往原图像中加入均值为0,方差为0.02的高斯噪声

subplot(1,2,1),imshow(I),title(‘原图像’);

subplot(1,2,2),imshow(J),title(‘加噪声后的图像’);

%对比加噪与不加噪

图3.1原图像与加噪声图像的比较

2)利用for循环先将图像相加4次,再求其平均值。

Im2double函数的作用是将图像数据变为一个double型数据,这样两图像数据就可以方便的进行相加代数运算。

对比图像结果如图3.2所示。

K=zeros(400,600,3);

%根据原图像的大小设置空矩阵k

fori=1:

4%将图像相加4次

J=imnoise(I,’gaussian’,0,0.02);

%往原图像加入高斯噪声

J1=im2double(J);

%将原图像数据变为一个double型的数据,方便代数运算

K=K+J1;

end

K=K/4;

Subplot(1,3,1),imshow(I),title(‘原图像’);

Subplot(1,3,2),imshow(J),title(‘加噪声后的图像’);

Subplot(1,3,3),imshow(K),title(‘相加平均后的图像’);

图3.2原图像、加噪声后和相加求平均后的图像的比较

3)若继续利用for循环将图像再分别相加8次和100次,再求其平均值,并对结果进行比较,由比较结果如图3.3可知,很明显随着平均图像数量的增加,噪声影响逐步减少,图像恢复的效果就越好。

K8=zeros(400,600,3);

8%将图像相加8次

%往原图像加入高斯噪声

%将原图像数据变为一个double型的数据,方便代数运算

K8=K8+J1;

K8=K8/8;

K100=zeros(400,600,3);

%根据原图像的大小设置空矩阵k

100%将图像相加100次

K100=K100+J1;

K100=K100/100;

Subplot(2,2,1),imshow(I),title(‘原图像’);

Subplot(2,2,2),imshow(J),title(‘加噪声后的图像’);

Subplot(2,2,3),imshow(K8),title(‘相加8次平均后的图像’);

Subplot(2,2,4),imshow(K100),title(‘相加100次平均后的图像’);

图3.3原图像、加噪声后和求不同次数平均后的图像的比较

3.2图像相减

图像相减的结果是将两图的差异显示出来。

例如,再录像监控系统中,利用背景相减法判断目标及其移动情况。

在医学成像中,可以用图像相减来去除固定的背景信息,得到相关的病理特征。

图像相减在运动检测中也很有用,在序列图像中,通过逐像素比较可直接求取前后两帧图像之间的差别,在差图像中不为零处表面该处的像素发生了移动,从而可以将图像中的目标的位置和形状变化凸显出来,并进一步判断目标的运动方向。

首先读取一个背景中加入目标图像的图像,再读取一个背景图,根据图像的大小设置一个空矩阵,两图像相减得到目标图像的数据,然后存入空矩阵当中。

利用背景相减法对图像来求差,然后由差图像可以判断目标图像,从而得到相关的信息。

具体用MATLAB的相关操作如下:

结果如图3.4所示。

clear

I=imread(‘0111.jpg’);

J=imread(‘010.jpg’);

4006003

K=I-J;

subplot(2,2,1),imshow(I),title('

含有目标图像的背景'

);

subplot(2,2,2),imshow(J),title('

背景'

subplot(2,2,3),imshow(K),title('

目标图像'

图3.4原图像与目标图像的比较

3.3图像与常数进行乘除运算

图像与常数进行乘除运算相当于把图像矩阵的所有元素都扩大或缩小一定的倍数。

当矩阵乘以一个大于1的数时,图像亮度增加;

乘以一个小于1的数时,图像变暗。

对于这个操作,相对比较简单,通过例子就可以看出:

结果如图3.5所示。

I=imread(‘013.jpg’);

I1=im2double(I);

I2=I1*2

I3=I1*0.5

subplot(1,3,1),imshow(I1),title('

原图像'

subplot(1,3,2),imshow(I2),title('

乘以2以后'

subplot(1,3,3),imshow(I3),title('

乘以0.5以后'

图3.5原图像与图像乘上常数后的比较

结论

MATLAB是一种基于向量(数组)而不是标量的高级程序语言,因而MATLAB从本质上提供了对图像的支持。

从图像的数字化过程可以看出,数字图像实际上就是一组有序的离散数据,使用MATLAB可以对这些离散数据形成的矩阵进行一次性的处理。

因此,MATLAB是图像处理研究中快速实现研究新构思的非常有用的工具。

MATLAB推出了功能强大的适应于图像分析和处理的工具箱,利用图像处理工具箱,我们可以方便地从各个方面对图像的性质进行深入的研究。

从以上讨论可以看出,在图像处理研究中使用MATLAB可以大大提高实验效率,快速实现研究中的新构思。

通过几条简单的命令就可以完成一大串高级计算机语言才能完成的任务。

随着版本的不断提高,MATLAB的功能越来越强大,应用范围越来越广泛。

如今,图片的应用范围越来越广泛,无处不在的图片出现,随之出现越来越多的图片处理软件。

MATLAB在图片处理中有它得天独厚的优势,将一个图像转化成数据,是最基础的一步,并且利用数据修改图像,是从根本上改变了图像。

矩阵在图像处理中的应用还有很多,比如利用矩阵运算增加水印、进行图像的几何变换等等,由于时间和能力有限,在此只研究了图像处理的一小部分。

在实验中,我认识到了MATLAB功能的强大,几乎应用于各个方面,掌握MATLAB的使用,在以后的建模和学习工作中都会有很大的帮助。

参考文献

[1]胡良剑,孙晓君.MATLAB数学实验[M].北京:

高等教育出版社,2006.

[2]王艳君,赵明华,李文斌.线性代数实验教程[M].北京:

清华大学出版社,2011.

[3]潘峰,刘文予,朱光喜.MATLAB在图像处理与研究中的应用[J].计算机应用研究,1999.

[4]李了了,邓善熙.MATLAB在图像处理技术方面的应用[J].微计算机信息,2003.

[5]冈萨雷斯.数字图像处理(第二版)[M].北京:

电子工业出版社,2003.

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2