《数字信号处理论文97565》由会员分享,可在线阅读,更多相关《数字信号处理论文97565(17页珍藏版)》请在金锄头文库上搜索。
1、数字信号处理中图像处理应用 摘要本文介绍了MATLAB 语言的特点,基于MATLAB的数字图像处理环境,介绍了如何利用MATLAB及其图像处理工具箱进行数字图像处理,并通过一些例子来说明利用MATLAB图像处理工具箱进行图像处理的方法。主要论述了利用MATLAB实现图像增强、二值图像分析等图像处理。关键词:MATLAB,数字图像处理,图像增强,二值图像一、 Matlab的介绍MATLAB 是MATrix LABoratory(“矩阵实验室”)的缩写,是由美国MathWorks 公司开发的集数值计算、符号计算和图形可视化三大基本功能于一体的,功能强大、操作简单的语言。是国际公认的优秀数学应用软件
2、之一。MATLAB的基本数据单位是矩阵,它的指令表达式与数学,工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多。MATLAB包括拥有数百个内部函数的主包和三十几种工具包(Toolbox).工具包又可以分为功能性工具包和学科工具包.功能工具包用来扩充MATLAB的符号计算,可视化建模仿真,文字处理及实时控制等功能.学科工具包是专业性比较强的工具包,控制工具包,信号处理工具包,通信工具包等都属于此类。MATLAB的主要特点。(1)语言简洁紧凑,使用方便灵活,库函数极其丰富。MATLAB程序书写形式自由,利用起丰富的库函数避开繁杂的子程序编程任务
3、,压缩了一切不必要的编程工作。由于库函数都由本领域的专家编写,用户不必担心函数的可靠性。可以说,用MATLAB进行科技开发是站在专家的肩膀上。(2)运算符丰富。由于MATLAB是用C语言编写的,MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短。 (3)MATLAB既具有结构化的控制语句(如for循环,while循环,break语句和if语句),又有面向对象编程的特性。(4)程序限制不严格,程序设计自由度大。例如,在MATLAB里,用户无需对矩阵预定义就可使用。(5)程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。(6)M
4、ATLAB的图形功能强大。在FORTRAN和C语言里,绘图都很不容易,但在MATLAB里,数据的可视化非常简单。MATLAB还具有较强的编辑图形界面的能力。(7)MATLAB的缺点是,它和其他高级程序相比,程序的执行速度较慢。由于MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。(8)功能强大的工具箱是MATLAB的另一特色。MATLAB包含两个部分:核心部分和各种可选的工具箱。(9)源程序的开放性。二、图像处理的原理所谓数字图像就是把传统图像的画面分割成如图2-1所示的被成为像素(picture element, 简称pixel。有时候也用pel这一简写词
5、)的小的离散点,各像素的灰度值也是用离散值即整数值来表示的。数字图像(digital imagine)和传统的图像即模拟图像(picture)是有差别的。图2-1 数字图像数字图像处理(Digital Image Processing)是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理的方法和技术。数字图像处理主要研究的内容有以下几个方面:(1)图像变换;(2)图像编码压缩;(3)图像增强和复原;(4)图像分割;(5)图像描述;(6)图像分类(识别)。(1)图像变换。由于图像阵列很大,直接在空间域中进行处理,涉及计算量很大。因此,往往采用各种图像变换的方法,如傅立叶变换、沃尔什变
6、换、离散余弦变换等间接处理技术,将空间域的处理转换为变换域处理,不仅可减少计算量,而且可获得更有效的处理(如傅里叶变换可在频域中进行数字滤波处理)。目前新兴研究的小波变换在时域和频域中都具有良好的局部化特性,它在图像处理中也有着广泛而有效的应用。 (2)图像编码压缩。图像编码压缩技术可减少描述图像的数据量(即比特数),以便节省图像传输、处理时间和减少所占用的存储器容量。压缩可以在不失真的前提下获得,也可以在允许的失真条件下进行。编码是压缩技术中最重要的方法,它在图像处理技术中是发展最早且比较成熟的技术。(3)图像增强和复原。图像增强和复原的目的是为了提高图像的质量,如去除噪声,提高图像的清晰度
7、等。图像增强不考虑图像降质的原因,突出图像中所感兴趣的部分。如强化图像高频分量,可使图像中物体轮廓清晰,细节明显;如强化低频分量可减少图像中噪声影响。图像复原要求对图像降质的原因有一定的了解,一般讲应根据降质过程建立“降质模型”,再采用某种滤波方法,恢复或重建原来的图像。(4)图像分割。图像分割是数字图像处理中的关键技术之一。图像分割是将图像中有意义的特征部分提取出来,其有意义的特征有图像中的边缘、区域等,这是进一步进行图像识别、分析和理解的基础。虽然目前已研究出不少边缘提取、区域分割的方法,但还没有一种普遍适用于各种图像的有效方法。因此,对图像分割的研究还在不断深入之中,是目前图像处理中研究
8、的热点之一。(5)图像描述。图像描述是图像识别和理解的必要前提。作为最简单的二值图像可采用其几何特性描述物体的特性,一般图像的描述方法采用二维形状描述,它有边界描述和区域描述两类方法。对于特殊的纹理图像可采用二维纹理特征描述。随着图像处理研究的深入发展,已经开始进行三维物体描述的研究,提出了体积描述、表面描述、广义圆柱体描述等方法。(6)图像分类(识别)。图像分类(识别)属于模式识别的范畴,其主要内容是图像经过某些预处理(增强、复原、压缩)后,进行图像分割和特征提取,从而进行判决分类。图像分类常采用经典的模式识别方法,有统计模式分类和句法(结构)模式分类。三、MATLAB图像处理的应用l 图像
9、处理工具包是由一系列支持图像处理操作的函数组成的。所支持的图像处理操作有:图像的几何操作、邻域和区域操作、图像变换、图像恢复与增强、线性滤波和滤波器设计、变换(DCT变换等) 、图像分析和统计、二值图像操作等。下面就MATLAB 在图像处理中各方面的应用分别进行介绍。 (1) 图像文件格式的读写和显示。MATLAB 提供了图像文件读入函数 imread(), X,map=imread(filename,fmt)(A=imread(filename,fmt));用来读取如:bmp、tif、tiffpcx 、jpg 、gpeg 、hdf、xwd等格式图像文;图像写出函数 imwrite() ,X,
10、map=Imread(canoe.tif);Imwrite(X,map, canoe.tif,Compression,none,WriteMode,append);还有图像显示函数 image()、imshow()等等。image(x,y,C),x,y分别为图像显示位置的左上角坐标,C表示所需显示的图像。 (2) 图像处理的基本运算。MATLAB 提供了图像的和、差等线性运算 ,以及卷积、相关、滤波等非线性算。(3) 图像变换。MATLAB 提供了一维和二维离散傅立叶变换(DFT) 、快速傅立叶变换(FFT) 、离散余弦变换 (DCT) 及其反变换函数,以及连续小波变换(CWT)、离散小波变换
11、(DWT)及其反变换。(4) 图像的分析和增强。针对图像的统计计算MATLAB 提供了校正、直方图均衡、中值滤波、对比度调整、自适应滤波等对图像进行的处理。(5) 图像的数学形态学处理。针对二值图像,MATLAB 提供了数学形态学运算函数;腐蚀(Erode)、膨胀(Dilate)算子,以及在此基础上的开 (Open)、闭(Close)算子、厚化 (Thicken) 、薄化 (Thin) 算子等丰富的数学形态学运算。l MATLAB支持的集中图像文件格式:(1) PCX(Windows Paintbrush)格式。(2) BMP(Windows Bitmap)格式(3) HDF(Hierarch
12、ical Data Format)格式。(4) JPEG(Joint Photographic Experts Group)格式。(5) TIFF(Tagged Image File Format)格式。(6) XWD(X Windows Dump)格式。(7) PNG(Portable Network Graphics)格式。l MATLAB中有四种基本的图像类型:(1)索引图像(2)灰度图像(3)二进制图像(4)RGB图像以下具体对灰度图像和二进制图像进行分析,并运用MATLAB进行仿真验证。四、图像处理4.1基本图像处理(1)首先显示两张图片,程序如下:clear all;close a
13、ll;I=imread(C:Documents and SettingsAdministratorwawa1.jpg);%用imread读入图片J=imread(C:Documents and SettingsAdministratorwawa2.jpg);subplot(221);imshow(I);subplot(224);imshow(J); (2)实现两图像相减程序如下:I=imread(C:Documents and SettingsAdministrator桌面wawa1.jpg);%用imread函数读入图片K=imread(C:Documents and SettingsAdm
14、inistrator桌面wawa2.jpg);Z=imsubtract(I,K);%用imsubtract函数实现两图片相减的功能imshow(Z)%显示相减后的图片title(两娃娃图片相减)(3)实现两图像相加程序如下:I=imread( C:Documents and SettingsAdministrator桌面wawa1.jpg);%用imread函数读入图片J=imread( C:Documents and SettingsAdministrator桌面wawa2.jpg);K=imadd(I,J,uint8);%用imadd函数实现两图片相加的功能imshow(K)title(两
15、图像相加)(4)图像切割程序如下:I=imread(C:Documents and SettingsAdministrator桌面wawa3.jpg); i=imcrop(I,70,70,60,60);%用imcrop函数实现切割图片的功能 subplot(121); imshow(I); title(娃娃原图); subplot(122); imshow(i); title(切割后的娃娃图片);(5)图像旋转 程序如下:clear all;close all;I=imread(C:Documents and SettingsAdministrator桌面wawa4.jpg);i=imrotate(I,-45,bilinear);% 用imrotate函数实现旋转图片的功能subplot(121);imshow(I);title(娃娃原图);subplot(122);imshow(i);title(旋转后的娃娃);4.2灰度图像的灰度级显示4.2.1图像求反对图像求反是将原来的灰度值翻转,简单的说就是使黑变白,使白变黑。