基于MATLAB的数字图像处理技术研究
2018-01-17江铁成
江铁成
(1.安徽大学艺术与传媒学院,安徽 合肥 230011;2.安徽广播影视职业技术学院,安徽 合肥 230011)
数字图像处理是伴随着计算机技术的普及而发展起来的一种全新的图像处理技术,因此也被称为计算机图像处理,能够将原本的图像信号转化为数字信号,然后结合专用的计算机软件,针对图像进行各种处理。在发展初期,图像处理是为了获取更加清晰的图像,其面对的对象是人,换言之,就是改善图像的视觉效果。而在不断的发展过程中,数字图像处理技术越来越先进,处理的目的也在逐步延伸,可以帮助人们理解图像中蕴含的信息,对于工业、医学、科研乃至日常生活都有着非常重要的作用。
1 MATLAB软件概述
MATLAB是对matrix&laboratory的组合缩写,直译为矩阵实验室,其开发者是美国Math Works公司,最初的用途是商业教学软件,可以面对科学计算、交互式程序设计以及可视化等高端计算环境提供数据可视化、数据分析、算法开发等交互式环境和高级计算语言,在实际应用中可以分为MATLAB和Simulink两个部分。
就目前而言,MATLAB在教学软件领域可谓声名显赫,尤其是在教学类科技应用软件中,MATLAB的数值计算功能可以说是独占鳌头,在工程计算、控制设计、信号处理、图像处理、信息监测等方面应用广泛[1]。在MATLAB软件中,矩阵是基本的数据单位,其相关指令的表达式与工程学以及数学中的常用形式类似,因此在对有关问题进行解决时,更加简单,也更加快捷。相比较其他同类软件,MATLAB具备相当显著的优势,一是编程环境简单,便于进行学习和操作,而且其本身具备相对完善的调试系统,可以不对程序进行编译,直接在编程环境下运行,同时也可以及时发现其中存在的错误,并且对错误的原因进行分析;二是应用操作简单,用户可以直接在命令窗口中,实现语句输入与命令执行的同步,也可以预先编写好复杂的应用程序,然后共同运行。最新的MATLAB语言是立足C++语言基础,不仅方便操作使用,而且具备较好的可拓展性和可移植性,可以深入到各个领域中,发挥良好的效果;三是处理能力强,MATLAB具备600多个常用的数学运算函数,基本上能够满足用户对于计算功能的各种需求,函数的相关算法经过了优化和容错处理,如果没有特殊要求,可以直接替代C语言和C++语言等,而且编程的工作量会大大减少[2]。
2 基于MATLAB的数字图像处理技术
利用MATLAB的强大功能,进行数字图像处理,能够达到预期的效果。以MATLAB 6.x为例,其本身提供了20种不同的图像处理函数,基本上实现对于数字图像处理技术的全面覆盖,具有非常强大的数字图像处理功能,这里对几种比较常见的功能进行简单分析。
2.1 图像变换
图像变换在数字图像处理技术中占据着非常关键的位置,其应用也有着非常广泛的基础。通过图像变换功能,可以对图像的表示数据以及表示域进行改变,从而为后续的图像处理提供便利。图像变换功能常见于图像的压缩、编码、滤波以及信息提取分析等过程,例如,结合傅里叶变换,可以在频域中运行数据处理分析功能,对运算进行简化;利用离散余弦变换,能够将能量集中,实现对于数据的无损压缩,为图像的传输和存储提供便利[3]。
2.2 类型转换
在MATLAB软件中,支持多种不同的图像类型,如灰度图像、RGB图像、索引图像以及二级制图像等,可以满足数字图像处理的各种要求。不过,在部分图像处理操作中,对于图像的类型有着非常严格的限制,当原本的图像无法满足图像处理要求时,就需要针对图像的类型进行转换[4]。MATLAB图像处理工具箱中设置有图像类型转换函数,可以满足不同图像类型之间的相互转换,例如,利用rgb2gray()函数,可以将彩色图像转化为灰度图像,利用gray2ind( ) 函数则能够将灰度图像或者二值图像转化为索引图像。不过,在进行图像类型的转换操作时,应该注意数据类型不匹配的问题,其可能会导致转化后的图像失真,或者图像信息的丢失、损坏。对此,MATLAB图像处理工具箱同样有所考虑,提供了不同数据类型之间的转换函数,以解决数据类型不匹配的问题。例如,运用double()函数,借以将数据转化为双精度的类型。
2.3 边缘检测
在图像处理中,有时候需要针对某一个区域进行优化处理,此时就需要用到边缘检测技术,这里的边缘指的是背景与需要提取的目标对象之间的分界线,只有准确提取出边缘,才能实现背景区域与目标区域的可靠区分。边缘检测功能,主要是利用背景与目标物体在某一种图像特征上的差异性来实现边缘的检测和提取,这些差异性包括了颜色、灰度、纹理特征等。从本质上讲,边缘检测就是对图像特性出现变化的位置进行检测,其基本内容有两个,一是对能够反应灰度变化的边缘点进行抽取,二是对部分边界点或者填补边界间断点进行剔除,同时将边缘连接起来,形成完整的线条[5]。假定一个像素处于边界线上,则其本身所处的领域就会成为灰度级变化的地带,而在这种变化中,最为有用的特征有两个,一是灰度的变化率,二是灰度的方向。结合边缘测算子,能够对每一个像素的相邻域进行检查,同时衡量灰度变化率,确定灰度的方向,一般情况下,此时采用的多是基于方向导数掩模求卷积方法。MATLAB图像处理工具箱提供有edge()函数,该函数可以完成对于prewitt 算子、Robert S 算子、canny算子以及sobel算子等的边缘检测。
2.4 图像增强
对于一些信息相对模糊的图像,运用图像增强技术,能够对其中比较重要的信息进行突出,弱化或者去除其中的冗余信息,提升图像的整体质量和效果。结合图像增强功能,可以在无视图像质量下降原因的情况下,实现对多余信息的衰减。通常来讲,图像增强的方法包括频率域法和空间域法两种,频率域法是指在图像本身的某一个变换域内,针对图像的变换系数进行修正,结合逆变换,得到增强后的图像,这种方法属于一种间接的增强法,包括同态图像增强、低通滤波增强等;空间域法是在空间域中,直接针对图像的灰度系统进行调节和处理,属于直接增强法,可以分为灰度变换、灰度级校正以及直方图修正等[6]。
2.5 图像缩放
结合MATLAB图像处理工具箱,可以实现对于邮箱的缩小或者放大操作,这里结合实例进行讨论。假设存在一个图像,其行数和列数分别为m、n,从实际应用需求分析,必须图像进行扩大处理,扩大后的图像行数和列数分别为2m、2n,为了保证扩大后图像的清晰度不会降低,需要运到图像差值算法。在基于MATLAB的数字图像处理中,图像大小的调节可以采用如下方法:
B=im resize(A,scale)
B=im resize(A,scale,method)
B=im resize(A,[mrow sncols])
在该调节方法中,A表示对图像进行缩放的矩阵,scale表示图像缩放的倍数,其数值以1为界限,如果小于1,则为图像缩小操作,如果大于1,则为图像扩大操作,在该例子中,scale的数值为2。Method表示图像缩放的指定效果,能够采用的算法众多,包括最近邻法、双线性插值法以及双三次插值法等,[mrow sncols]则代表了指定效果的缩放图像的行列数。
3 实践应用
这里主要结合灰度直方图均衡化,对基于MATLAB的数字图像处理技术进行简要分析。
均衡量化的自然图像灰度直方图一般在低灰度区间的频率相对较大,会导致图像中光线较暗的区域无法细节展示不清晰,无法对图像信息进行提取。对此,可以结合空间域法中的直方图修正,使得原图的灰度分布更加均匀,或者将其灰度集中区域拉开,对反差进行增强,从而使得图像细节的展示更加清晰[7]。直方图均衡化可以结合histeq()函数来实现,具体如下:
I=imread(’p4.jpg’);
J=histeq(I);
Imshow(I);
Imshow(J);
其图像增强效果见图1。
注:左边为原图,右边为增强处理后的图像图1 直方图均衡图像增强技术的效果对比
4 结语
最近几年,伴随着科学技术的飞速发展,数字图像处理技术受到了越来越多的重视,在许多新的领域中得到了越发广泛的应用,开始逐渐走入人们的日常工作和生活。基于MATLAB的数字图像处理技术与常规数字处理技术相比,不仅功能更加完善,而且操作异常简单,适用性增强,可以对原本繁琐的数学计算进行简化,在很大程度上推动了数字图像处理技术的发展。
[1] 张煜东,王水花,陈书文.基于Matlab的数字图像处理教学[J].教育文化论坛,2014,6(3):89-91.
[2] 李晶路.基于MATLAB的数字图像处理与分析[J].无线互联科技,2014,(9):82-83.
[3] 郝强,赵河明,张毅.基于MATLAB的数字图像处理技术与应用[J].河北农机,2014,(11):45-46.
[4] 张瑶,刘生辉.基于MATLAB的图像融合技术[J].中国科技信息,2016,(1):55-56.
[5] 蒋庆磊,聂永涛.基于MATLAB的微内孔图像处理技术的研究[J].河北农机,2016,(5):68.
[6] 程小红.基于MATLAB图形简单处理应用[J].电脑知识与技术(学术交流),2013,(15):3610-3613.
[7] 吴东超,崔斌.基于MATLAB的数字图像处理方法与实现[J].中小企业管理与科技(旬刊),2011,(33):221.