MATLAB在数字图像处理中的应用分析
2013-11-24
(广东省地质测绘院 广东广州 510800)
0 引言
MATLAB是近几年来国内外使用最为广泛的软件之一,其语法结构简单.具有极强的数值计算、数据分析、图形绘制及图像处理等功能,具有高质量的图形可视化效果和强大的界面设计能力,因而在数字图像处理中有着其他语言所无法比拟的优势。
1 MATLAB 语言的特点
MATLAB 语言具有如下特点:
⑴编程效率高
MATLAB 语言通俗地称为演算纸式科学算法语言,用MATLAB 编写程序犹如在演算纸上排列出公式与求解问题,编写简单,效率高[1]。
⑵用户使用方便
MATLAB 语言集编辑、编译、连接和执行为一体,调试程序手段丰富,速度快。它能在同一画面上进行灵活操作、快速排除输入程序中的各种错误,从而加快了用户编写、修改和调试程序的速度[2]。
⑶扩充能力强
MATLAB 语言在进行复杂的数学运算时可以直接调用库函数,而且用户文件也可作为MATLAB的库函数来调用。所以用户可以根据自己的需要方便地建立和扩充新的库函数,提高MATLAB的使用效率和扩充功能。
⑷语句简单易懂,内涵丰富博大
MATLAB 语言中最基本最重要的成分是函数,其一般形式为[a,b,….]=fun(x,y,z…),即一个函数由函数名fun,输入变量(x,y,z,…)和输出变量[a,b,c…]组成。同一函数名,不同数目的输入变量和输出变量,代表着不同的含义。这不仅使MATLAB的库函数功能更丰富,而且大大减少了需要的磁盘空间,使得MATLAB 编写的M 文件简单短小却高效[3]。
⑸高效方便的矩阵和数组运算
MATLAB 语言像Basic、Fortran 和C 语言一样规定了矩阵的一系列运算符,它不需定义数组的维数,并给出矩阵函数、特殊矩阵专门的库函数,使之在求解诸如信号处理、建模、系统识别、控制、优化等领域的问题时,显得极为简捷、高效。
⑹方便的绘图功能
MATLAB 有一系列绘图函数(命令),通过调用不同的绘图函数(命令),就能在图上标出图题、XY轴标注,格(栅)绘制[4]。
2 基于MATLAB的数字图像处理的计算实例
某区域卫星图片如图1所示,已知最北端到最南端距离为382km,求该区域面积和东西间的最大距离。
图1 某区域卫星图片
在MATLAB中读入该图像后,其方法步骤为:
(1)将图像进行RGB模型到H-S-V模型的变换,并统计出生成的H 分量图的直方图,通过graythresh()函数选取全局阈值,以此作为二值化的阈值。将大于阈值的亮度赋予值1,小于阈值的亮度值赋予0,再对生成的二值图像进行数学形态学处理,先进行以去除噪声。最后将二值图像存储为B(i,j)待用。
(2)从已存储的二值图像的首个像元开始进行,从上到下,从左至右的逐行扫描,当遇到第一个像素值为1时,则记录下该点矩阵坐标(k,t),并结束扫描。
(3)从已存储的二值图像的最后一个像元开始进行,从下到上,从右至左的逐行扫描,当遇到像素值为1时,则记录下该点矩阵坐标(m,n),并结束扫描。
(4)由于所给的最北端到最南端距离为欧几里得距离(Euclidian distance),如图2所示,故Z=设每个像元的分辨率为d,S=d*Z=将k,t,m,n S=382km,代入该式,可得分辨率d。
图2 像元图
(5)计算东西间的最大距离;从1 行开始,从左至右,从上至下扫描;当i 行遇到一个像素值为1时,定义的像素点1的计数变量x 加1,然后将本行x 记录的1 像元的个数赋给行记录一维矩阵l (i),将计数变量x 清零,记录第i 行的1 像元个数。下一行重复扫描,直到全图扫描完时结束扫描,选取f=max[l(i)],则东西间的最大距离
Distance=f*d。
(6)计算区域面积;Area=d2*bwarea(A4)程序代码为:
Z=((k-m)^2+(t-n)^2)^0.5;%图像上最北边到最南边点的距离
(7)结果
各个步骤的结果如下列图所示:
图3 从RGB 空间变换到HSV 空间的彩色图像
图4 HSV 空间的H 分量图像
运行算出的该区域的面积为35346km2、东西间的最大距离为137.54km。而真实的该区域面积约35700km2,南北最长约394km,东西最宽约144 km,结果比较相对较好。
3 结束语
图5 HSV 空间的H 分量的直方图
图6 采用谷底法二值化后的图像
图7 对二值化图像进行一次开运算和一次闭运算后的图像
图8 运行结果
采用MATLAB 实现图像处理、分析和计算,通过几条简单的MATLAB 命令就可完成较多的高级计算机语言才能完成的任务,简洁明了。大多数图像处理模型是可以通过使用MATLAB的基本函数的编程来实现,在MATLAB中的工具箱中有许多函数可运用图像处理技术,因此在图像处理中使用MATLAB 语言可以快速实现图像的模拟仿真,较大地提高工作效率。
[1]张培强.MATLAB 语言演算纸式的科学工程计算语言[M].合肥:中国科学技术大学出版社,1995.
[2]朱富丽.MATLAB 在数字图像处理技术中的应用[J].计算机光盘软件与应用,2010,4:10-11.
[3]郑继刚.MATLAB 在数字图像处理中的应用[J].保山师专学报,2009,28(5):76-79.
[4]王蔚.MATLAB 在数字图像处理技术中的应用[J].宁波职业技术学院学报,2006,10(5):30-32.
[5]赵英时.遥感应用分析原理与方法[M].北京:科学出版社,2003.
[6]苏金明,阮沈勇.MATLAB 实用教程[M].北京:电子工业出版社,2005.
[7]苏金明,王永利.MATLAB7.0 使用指南[M].北京:电子工业出版社,2004.