1 引言
1.1MATLAB介绍
MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连 接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。 MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++ ,JAVA的支持。可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
1.2MATLAB图像处理工具箱函数介绍
1. imread
imread函数用于读入各种图像文件,如:a=imread('E:\1.jpg)
注:计算机E盘上要有1相应的.jpg文件。
2. imfinfo
imfinfo函数用于读取图像文件的有关信息,如:imfinfo('E:\1.jpg)
3. rgb2grad
rgb2grad()函数用于把真彩图转换为灰度图
4. imshow
imshow函数用于灰度图像文件的显示,如:
i=imread('E:\1.jpg);
imshow(i);
5. imnoise
imnoise函数用于对图像生成模拟噪声,如:
i=imread('E:\1.jpg);
j=imnoise(i,'gaussian',0,0.02);%模拟高斯噪声
5. fspecial
fspecial函数用于产生预定义滤波器,如:
h=fspecial('sobel');%sobel水平边缘增强滤波器
h=fspecial('gaussian');%高斯低通滤波器
h=fspecial('laplacian');%拉普拉斯滤波器
h=fspecial('log');%高斯拉普拉斯(LoG)滤波器
h=fspecial('average');%均值滤波器
6. 中值滤波
medfilt2函数用于图像的中值滤波,如:
i=imread('e:\w01.tif');
j=medfilt2(i);
2 图像的采集
图像以数字形式进入计算机是进行数字图像处理的第一步。一幅黑白图像可以看成是一个二维函数f(x,y),其亮度是位置(x,y)的连续函数。计算机中的数字图像是以矩阵形式[f(m,n)]表示的,不同的处理就是用不同的算法对这一图像矩阵进行运算。从二维连续函数到矩阵,涉及在不同空间位置上取出函数值作为样本,并用一组整数值来表示这些样本的两个过程,前者称为取样,后者称为量化,二者统称为数字化。
根据要求,数据来源于电脑上的图片,将这幅图片保存在路径“F:\CF\1.jpg”,图片命名为1,原始的图片如图1-1所示:
图1 原彩色图像
3 图像的加噪
3.1加入乘性噪声
3.1.1噪声分析与函数使用
现实中,图像在被获取和被传输时常常会受到各种各样的噪声的干扰,按其影响可分为加性噪声和乘性噪声。MATLAB中为图片加乘性噪声的语句是
(1)J = imnoise(I, 'speckle'); (1)
(2)J = imnoise(I, 'speckle',parameters); (2)
其中I为原图象的灰度矩阵,J为加噪声后图象的灰度矩阵;一般情况下用(1)表示即可,(2)中表示是允许修改参数,而