MATLAB在图像处理与分析中的应用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB在图像处理与分析中的应用
摘要:介绍了MATLAB图像处理的原理以及相关的一些函数,并根据该原理结合MATLAB编程,实际操作制作了一些图像处理的实例。
关键词:图像处理,MATLAB,数字图像,函数
引言
MATLAB软件由美国MathWorks公司推向市场以来,历经十几年的发展和竞争,现已成为国际公认的最优秀的科技应用软件之一。
该软件有三大特点:一是功能强大(数值计算和符号计算、计算结果和编程可视化、数学和文字处理、离线和在线计算等);二是界面友好、语言自然;三是开放性强,这是MATLAB最重要最受欢迎的特点之一。
现在,MATLAB已经发展成为一个系列产品:MATLAB主包和各种工具箱(TOOLBOX)。
其中功能丰富的30多个工具箱大致分为两类,功能型工具箱和领域型工具箱。
功能型工具箱主要用来扩充MATLAB的符号计算功能、图形建模仿真功能、文字处理功能以及和硬件实时交互功能,能用于多种学科;而领域型工具箱则具有专业性很强的特点,如图像处理工具箱、小波工具箱、神经网络工具箱等多个学科的专用工具箱。
借助于这些工具箱研究人员可直观、方便地进行分析、计算及设计工作,从而快速实现科研构想和提高工作效率。
1、MATLAB图像处理的原理及其合理性
数字图像处理是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。
常用的图像处理方法有图像增强、复原、压缩、编码等。
理论上讲图像是一种二维的连续函数,在计算机上对其进行数字处理的时候,首先必须对其在空间和亮度上进行数字化这就是图像的采样和量化过程。
二维图像进行均匀采样,就可以得到一幅离散化成M*N样本的数字图像,该数字图像是一个整数阵列,因而用矩阵来描述该数字是最直观最简便的了。
MATLAB中的数字图像是以矩阵的形式表示的,而MATLAB的长处就是处理矩阵运算,这意味着MATLAB的强大的矩阵运算能力用于图像处理非常有利。
2、MATLAB图像处理工具箱的功能说明
MATLAB提供了专门的用于图像处理的工具箱,图像处理是由一系列支持图像处理操作的函数组成,所支持的图像处理操作有:几何操作,区域操作,块操作;线性滤波和滤波器设计;变换(DCT变换);图像分析和增强;二值图像操作等。
和其他工具箱一样,用户还可以根据需要书写自己的函数,以满足特定的需要。
也可以将这个工具箱和信号处理工具箱或者小波工具箱联合起来使用。
数字图像处理工具箱函数包括以下15类:图像显示函数;图像文件输入输出函数;图像几何操作函数;图像像素值及其统计函数;图像分析函数;图像增强函数;线性滤波函数;二维线性滤波器设计函数;图像变换函数;图像邻域及块操作函数;二值图像操作函数;基于区域的图像处理函数;颜色图操作函数;颜色空间转换函数;图像类型和类型转换函数。
常用的工具箱函数功能如下:
○1MATLAB的图像增强功能
图像增强的目的是采用一系列技术去改善图像的视觉效果或将图像转换成
一种更适合于人眼观察和机器自动分析的形式。
常用的图像增强方法有以下几种:
(1)灰度直方图均衡化。
均匀量化的自然图像的灰度直方图通常在低灰度区间上频率较大,采用直方图修整可使原图像灰度集中的区域拉开或使灰度分布均匀,从而增大反差,使图像的细节清晰,达到增强目的。
直方图均衡化可用histeq()函数实现。
(2)灰度变换法。
一般的图像整个图像偏亮或偏暗,为此需要对图像中的每一像素的灰度级进行标度变换,扩大图像灰度范围。
以达到改善图像质量的目的。
这一灰度调整过程可用imadjust()函数实现。
(3)平滑与锐化滤波。
在灰度连续变化的图像中,我们通常认为与相邻像素灰度相差很大的突变点为噪声点,灰度突变代表了一种高频分量,低通滤波则可以削弱图像的高频成分。
平滑了图像信号,但也可能使图像目标区域的边界变得模糊。
而锐化技术采用的是频域上的高通滤波方法,通过增强高频成分减少图像中的模糊,特别是模糊的边缘部分得到了增强,但同时也放大了图像的噪声。
在MATLAB中,各种滤波方法都是在空间域中通过不同的卷积模板即滤波算子实现,
可用fspecial()函数创建预定义的滤波算子,然后用filter2()或conv2()函数在实现卷积运算的基础上进行滤波。
○2.MATLAB的边缘检测功能
边缘是所要提取目标和背景的分界线,提取出边缘才能将目标和背景区分开来。
如果一个像素落在边界上,那么它的邻域将成为一个灰度级变化的带。
对这种变化最有用的两个特征是灰度的变化率和方向。
边缘检测算子可以检查每个像素的邻域并对灰度变化率进行量化。
MATLAB工具箱提供的edge()函数可针对sobel算子、prewitt算子、Roberts算子、log算子和canny算子实现检测边缘的功能。
基于灰度的图像分割方法也可以用简单的MATLAB代码实现。
○3MATLAB图像变换功能
图像变换技术是图像处理的重要工具,常运用于图像压缩、滤波、编码和后续的特征抽取或信息分析过程。
MATLAB工具箱提供了常用的变换函数,如fft2()与ifft2()函数分别实现二维快速傅立叶变换与其逆变换,dct2()与idct2()函数实现二维离散余弦变换与其逆变换,Radon()与iradon()函数实现Radon变换与逆Radon变换。
除了以上基本的图像处理功能.MATLAB还提供了如二值图像的膨胀运算dilate()函数、腐蚀运算erode()函数等基于数学形态学与二值图像的操作函数。
3、图像处理的基本方法和函数
MATLAB图像处理工具箱支持四种图像类型,分别为真彩色图像,索引色图像,灰度图像和二值图像。
RGB图像即真彩图像:矩阵中每一个元素为一数组,数组的元素定义了像素的红、绿、蓝颜色值。
RGB数组可以是double类型、8位或16位无符号的整数类型;索引色图像:包括一个数据矩阵X和一个色矩阵MAP。
矩阵元素值指向MAP中的特定颜色向量;灰度图像:数据矩阵I,I中的数据代表了颜色灰度值。
矩阵中的元素可以是double类型,8位或16位无符号的整数类型;二值图像:一个数据阵列,每个像素只能取0或1。
图像类型转换函数如下:dither-用抖动法从灰度图像创建一个二值图像或从RGB图像创建一个索引图像。
gray2ind-从灰度图像创建一个索引图像。
Grayslice-设定阈值将灰度图像转换成一个索引图像。
Ind2bw-基于亮度阈值将灰度图像,索引图像或RGB图像
创建一个二值图像。
Ind2gray-索引图像转换成灰度图像。
Ind2rgb-索引图像转换成RGB图像。
Mat2gray-数据矩阵转换成灰度图像。
Rgb2grayRGB-图像转换成灰度图像。
Rgb2indRGB-图像转换成索引图像。
Im2double-转换图像数据矩阵为double型。
Im2unit8-转换图像矩阵为unit8型。
Im2unit16-转换图像数据矩阵为unit16型。
Isbw-辨别图像数据是不是二值图像。
Isgray-判别图像数据是不是灰度图像。
Isind-辨别图像数据是不是索引图像。
Isrgb-辨别图像数据是不是RGB图像。
MATLAB常用图像处理操作为:
图像的读写与显示操作:用imread()读取图像,imwrite()输出图像,把图像显示于屏幕有imshow(),image()等函数。
imerop()对图像进行裁剪,图像的插值缩放可用imresize()函数实现。
旋转用imrotate()实现。
4、在图像处理中应用MATALAB的一些实例
(1)图像的几何处理-旋转200度
x=imread('d:\MATLAB7\work\flower.jpg');
y=imrotate(x,200,'bilinear','crop');
subplot(1,2,1);
imshow(x);
subplot(1,2,2);
imshow(y)
在MATLAB中的得到的图像如下:
(2)图像的剪切
rgb=imread('d:\MATLAB7\work\meihua.jpg');
subplot(1,2,1);
subimage(rgb)
subplot(1,2,2);
rgb2=imcrop(rgb,[210 123 126 150]);
subimage(rgb2)
在MATLAB 中得到的图像如下:
200400600800
20040060020406080100120
2040
60
80
100120
140
5、结束语
实践证明,MATLAB 软件功能强大。
语言自然且人机界面友好。
开放性强,语言简洁。
可读性好,工具箱涉及的专业领域广泛且功能强大。
图像工具箱几乎包括所有经典的图像处理方法。
由于工具箱具有可靠性和开放性,我们可以方便地直接加以使用,也可以把自己的代码加到工具箱中以改进函数功能,同时,MATLAB 中的小波工具箱也有许多函数可运用于图像处理技术。
因此,在图像处理技术中使用MATLAB 语言可以快速实现模拟仿真,从而大大提高实验效率
6、参考文献
《基于MATLAB 的控制系统计算机仿真》
《计算机仿真技术与CAD 》。