厉俊
摘 要:MATLAB作为算法开发及数据可视化的交互式工具,在数字图像处理方面应用广泛,并集成了具有多种算法的图像处理工具箱。本文基于MATLAB图像用户界面(GUI)和图像处理工具箱设计实现了一款图像处理系统,该系统可实现图像的运算、变换、分割、改善、形态学处理、压缩编码等内容,并通过综合实例阐述了本系统在图像识别中的应用,使图像处理可视化更加直观,便捷。多次实践表明,本系统具有良好的实用性、交互性、移植性,易于后期模式识别和机器视觉相关应用的扩展研究。
关键词:图像处理系统;MATLAB GUI;数字图像处理;图像识别
中图分类号:TP242 文献标识码:A
Abstract: As an interactive tool for algorithm development and data visualization, MATLAB is widely used in digital image processing and integrates image processing toolbox with different algorithms. Based on Graphical User Interface (GUI) of MATLAB and the image processing toolbox, this paper designs and implements an image processing system, which can realize the operation, transformation, segmentation, improvement, morphological processing, compression and coding of images, and expounds the application of the system in image pattern recognition through a comprehensive example, making the image processing visualization more intuitive and convenient. Many practices show that the system has good practicability, interactivity and portability, and it is also helpful for further research on pattern recognition and machine vision related applications.
Keywords: image processing system; MATLAB GUI; image processing; image pattern recognition
1 引言(Introduction)
人類对于外部世界的摸索与感知,获取信息的83%来自视觉、记忆70%来自交互[1]。大脑对于接收的信息依赖于神经网络进行目标与面部识别,每一层神经元都逐步地对视觉信号进行发掘处理,以获取更多信息。而近年来随着机器视觉的日新月异,其深度神经网络宏观结构与人类大脑负责视觉的部分十分类似[2],这项研究展现了利用机器视觉来帮助研究者们扩展人类认知的巨大潜力,而这其中最重要的技术便是图像处理技术。数字图像处理是通过计算机对图像加工、处理,以改善图像视感质量,提取特征信息,对数据进行变换、压缩编码的过程,该技术应用在人类生活和工作的各个方面,例如生物医学、军事公安、科学可视化等[3]。因此本文基于MATLAB GUI和图像处理工具箱设计实现了一款图像处理系统,实现图像的运算、变换、分割、改善、形态学处理、压缩编码等内容,并通过综合实例阐述了本系统在图像识别中的应用,使图像处理可视化更加直观,便捷。
2 MATLAB及GUI设计介绍(MATLAB and GUI design introduction)
MATLAB又称矩阵实验室,是一款算法开发及数据可视化的交互式工具,在数字图像处理方面应用广泛,并集成了具有多种算法的图像处理工具箱。它将数据可视化、矩阵计算、非线性动态系统建模及仿真集成在一个交互性强,易于使用的视窗环境中,大大摆脱了C、Fortran等传统非交互式编程语言的编辑模式[4],使得编程的可视化和仿真分析更直观、便捷。
MATLAB GUI称为图形用户界面(Graphical User Interface,简称GUI),是以图形样式显示的交互式用户界面,提供用户Static Text、Edit Text、Listbox、Slider、Push Button、Toggle Button、Radio Button、Button Group、Check Box、Popup Menu、Axes、Panel十二种图形控件,通过拖动相应的控件,双击对其外观和属性进行设置,并编写回调函数,即可实现用户设计的功能,减少了繁冗复杂的代码编译,视觉及操作上都易于用户的创建使用。
本文设计的图像处理系统涵盖MATLAB提供的20余类相关函数,支持灰度图片、二值图片、索引图片等图片类型,支持PNG、BMP、JPEG、GIF、TIFF等图像文件格式的显示,实现了图像处理的六大基本功能模块及综合实例应用,直观地展现了数字图像处理的效果。
3 图像处理系统的总体设计(The overall design of the image processing system)
MATLAB工具箱为用户提供了丰富实用的函数库,使得程序编译简洁美观。Image Processing Toolbox支持多种图像数据格式[5],为图像数据分析,图像细节获取提供了有力的支持,涵盖大部分经典的图像处理函数,结合GUI可视化界面,让用户更直观地选择最优算法,GUI图像处理系统总体结构框架如图1所示。
本系统集成七大模块:图像运算、变换、分割、改善、形态学处理、压缩编码及综合实例,各个模块包含了各类图像处理算法,并以相应子界面的形式展现在系统中,通过改变子界面中控件的参数,编写相应的回调函数,可实现界面之间的切换跳转及对应功能的实现。
4 图像处理系统的界面设计(Interface design of image processing system)
4.1 系统主界面设计
GUI图像处理主界面由模块选择和系统菜单两部分组成,包含了按钮、面板、坐标轴、文本框四种控件,各个按钮都有相应的回调函数使得主界面切换至各模块子界面,GUI图像处理系统主界面如图2所示。
4.2 系统子界面设计
本系统设计了七个模块的子界面,分别对应不同的图像处理功能,下面分模块介绍子界面。
(1)图像运算
图像运算是以像素点的幅度值为运算单元,图像处理中最基本的运算,本系统分为点运算、算术运算、几何运算和逻辑运算四个部分,子界面中的Axes1显示原始图像,Axes2显示处理后的图像。当进行图像运算时,先点击读取图像按钮,再点击任一运算按钮进行处理,否则会弹出msgbox进行引导提示[6],规范用户的操作,GUI图像运算子界面如图3所示。
(2)图像变换
图像变换是为了快速有效地对图像进行分析处理,所作的二维线性可逆变换,处理中所用的变换都是酋变换,使变换核满足正交条件[7],更有利于特征提取,图像增强和压缩编码。本系统涉及的变换有二维离散傅里叶变换、二维离散余弦变换、Hough变换核Radon变换等。
以Radon变换为例,为了节省篇幅,只显示主要程序:
(3)图像分割
图像分割是图像识别前关键的预处理,提取出图像独特性质的区域或者用户所要应用的部分,比如亮度、颜色、区域、边缘等,所涉及的分割算法十分众多[8]。本系统分阈值、区域分割、边缘检测和直方图法四个部分来展现不同算法对图像分割处理的效果,GUI图像分割子界面如图4所示。
(4)图像改善
图像改善技术分为图像增强和图像复原,图像增强是有目的的扩大不同物体之间的差别,增强有用特征,抑制不感兴趣的部分,从而丰富图像信息,改善图像质量,增强识别效果。而图像复原是对降质图像进行重构恢复的过程[9]。
因此本系统对于图像改善分两个模块设计,加入了空间滤波增强、彩色增强、维纳滤波复原、盲解卷积复原等算法,GUI图像改善子界面如图5所示。
(5)图像形态学处理
形态学处理包含了基本运算和组合运算,其实质是改变物体形状,在消除噪声、特征提取、纹理分析、区域描述等方面应用广泛[10]。以膨胀为例,图像膨胀是腐蚀操作的逆运算,类似于“领域扩张”,将图像中高亮区域进行扩张以达到去噪的效果,GUI图像形态学处理子界面如图6所示。
(6)图像压缩编码
图像的压缩编码分为有损压缩和无损压缩,是在一定保真度的条件下,去除多余数据,删除各类冗余信息,减少图像所需数据量的过程,便于图像的储存与传输,GUI图像压缩编码子界面如图7所示。
(7)图像综合实例
系统最后通过人脸识别、商品识别、文字识别和车牌识别四个综合实例来阐述图像处理在实际中的应用。
人脸识别:人脸识别技术是针对人的脸部特征,对采集的人脸图像进行识别定位的过程,在身份定位和信息安全方面应用广泛,本系统仅能实现人脸图像采集、人脸识别预处理和人脸定位的功能,涉及的函数有regionprops()、PCA()、bwlabel()等[11],为身份确认he身份查找功能奠定了基础。
商品识别:商品识别过程复杂,涉及多类算法,本系统暂实现不同商品的区分,返回对应的参数值,若要实现商品的匹配,输出商品信息,需与Mysql,SQLServer等数据库进行连接。
文字识别:文字识别是图像处理应用中一个重要的领域,系统对采集的文字图像进行识别扫描,利用几何特征抽取法抽取文字的几何特征,如文字端点、分叉点、凹凸部分、闭合环路等,并根据这些特征值进行逻辑组合判断,从而得出识别结果。
车牌识别:车牌识别是图像识别技术在车辆牌照识别中的又一技术,不仅是车辆管理,电子收费中的一大应用,也是融合DSRC技术识别车辆身份的主要手段[12],本系统通过图像数据读入、图像转换、边缘检测、腐蚀处理、平滑处理、移除小对象、确定车牌位置、定位剪切、车牌图像二值化、均值滤波,膨胀或腐蚀处理、切割、分离字符的步骤识别出牌照信息,经过实践证明,识别率高达92.6%。GUI图像综合实例子界面如图8所示。
5 结论(Conclusion)
本文利用MATLAB强大的数值计算、数据分析和图像处理的能力,基于GUI图形用户界面设计实现了一款图像处理系统,该系统集成七大模块,可实现图像的运算、变换、分割、改善、形态学处理、压缩编码等内容,涵盖了数字图像处理基础及进阶技术,并通过综合实例阐述了本系统在图像识别中的应用,使图像处理可视化更加直观,便捷。在多次实践中,系统操作简单、界面友好、运行稳定,具有良好的实用性、交互性、移植性。用户可以通过自行添加模块设置,修改对应的参数,编写回调函数,即可让系统发挥更多的功能操作,让图像处理更丰富多彩。现今,数字图像处理呈现出高灵活、广适用、通用强、高精度的特点,应用领域涉及人类生活各个方面,通过设计这一图像处理系统,不仅为研究人员提供了分析和解決问题的方法思路,在最短的时间内选择最优算法,也为后期模式识别和机器视觉相关应用的扩展研究奠定了基础。