基于MATLAB的红外图像界面设计及图像分割研究
2023-08-09王艳丽
王艳丽
(曲靖市第二人民医院,云南 曲靖 655000)
目前,MATLAB软件是一种采用普遍的图片信息处理软件。其基于MATLAB开展数字图像处理专用工具,包含图形界面设计(GUI)的制作和系统的程序编写。图形界面设计(GUI)是给予人机互动的专用工具和方式。其中GUI是一个操作界面,包括图形目标,如对话框、图标、菜单栏和文字。当这种目标以一种模式被挑选或激活时,通常会触发动作或转变。一个设计方案优良的GUI可以更直观地让客户了解怎样实际操作MATLAB页面,了解设计师的开发设计用意。MATLAB的GUI为开发者给予了一个不脱离MATLAB的开发环境,并且有助于MATLAB程序流程的GUI集成化。可以使开发者免去很多繁杂的编码,简单化程序流程,此外还可以为管理者设计一个用户界面,乃至实现多媒体系统的实际效果。为此文中基于图像增强、图像分割的一些简单传统算法,介绍GUI设计整个图像分割处理界面的操作方法,有利于客户更好地提高工作效率。
1 红外图像增强
红外图像增强是数据处理的关键信息之一。图像增强是指根据特定需要突出显示图像中的某些信息,同时弱化或删除多余信息。文中基于空域方法的理论,阐述了领域均值、拉普拉斯算子、均值滤波等图像增强的优化算法。
1.1 领域均值法
领域均值法是一种局部空间域优化算法。该算法的主要做法是将每个像素的灰度值替换为多个像素的平均灰度值。假设图像f(x,y)是二维数组N*N,平滑图像g(x,y)的计算如下:
式中x,y=1,2,…,N-1;S是(x,y)邻域内点的坐标结合[不包括点(x,y)],M是S中坐标点的总数。
此种算法简单快速,但主要缺点是会削弱噪声和图像模糊度,尤其是在边缘和关键点。邻域越大,图像越模糊。如果某些点的灰度值与相邻点的平均值之间的距离过大,则一定是噪声。因此,以邻域平均值作为该点的灰度值具有良好的平滑实用效果。
1.2 拉普拉斯算子
拉普拉斯算法是各向同性微分算子最简单的旋转变量。二维图像函数公式f(x,y)的拉普拉斯变换是各向同性二阶导数的计算如下:
为了更好地适应数据图像处理,其方程式以离散变量如式(3):
如图1所示,当一个闪光点发生在图像较暗的区域时,拉普拉斯计算使这一闪光点变得越来越亮。由于图像的边缘是一个灰度振荡区域,拉普拉斯的动态模糊模板在检测边缘时非常有效。对于锐边和缓慢过渡的边缘,使用一般的技术很难确定边缘线的位置,但此种类型的算法可以根据平方微分的正负顶点之间的零交点来确定。由于对孤立点或节点特别敏感,因此在图像中突出显示孤立点、独立线和相应的节点非常方便。此外,拉普拉斯算法还可以改善图像噪声。
图1 拉普拉斯模板
由于拉普拉斯算法是一种微分算子,它的应用可以改善灰度变换强烈的区域,削弱灰度变换缓慢的区域。因此,在整个锐化过程中(增加饱和度),可以选择拉普拉斯优化算法对初始图像进行处理,以形成描述模具级别突然变化的图像,然后将拉普拉斯图像和原始图像可以累积以生成锐化图像。这种简单的锐化方法不仅可以达到拉普拉斯锐化的实际效果,而且可以保留背景信息的内容。
1.3 中值滤波
中值滤波器也是空间域中一种典型的低通滤波器。其目的是在保留图像边缘的同时去除噪声。中值滤波的原理是将数据图像或数字编码中的点值替换为该字段中每个点的平均值。中值过滤定义如下:
一组数x1,x2,x3……xn把各数值的大小顺序排列如下:
中值滤波对单脉冲效应和噪声有很好的控制效果,可以抑制任意噪声,合理降低边缘模糊度。但是,它不适用于具有许多关键点(例如点和线)的图像。
2 图像分割
图像分割是一个技术性的、综合性的过程,在这个过程中将图像分割成若干具有鲜明特征的特殊区域,并获取感兴趣对象不同的特殊区域。这些特征可以是灰度、颜色和纹理等采集目标;可以是对应的一个或多个区域。本文主要以一阶微分、索贝尔、边缘检测等多种算子进行详细概述。
2.1 索贝尔算子
针对数字图像处理{f (i,j)}的每一个清晰度,应检查数字图像处理前后左右相邻点灰度权重计算的差异,并且其附近相邻点的权重值相对较大。因此,索贝尔算子的运算符定义如下:
取适合的阈值TH并区分如下:s(i,j)>TH,(i, j)为阶跃状边缘点,s(i,j)}是边缘图像。
索贝尔边缘检测器不仅具有很好的边缘检测效果,而且受噪声影响较小。当应用于大规模应用时,抗噪性能更好,但计算量增加,产生的边缘会更粗糙。
2.2 一阶微分算子
一阶微分算子是边缘模型算子。该算子模板由理想化边缘子图像组成。边缘模板用于识别图像和检测区域之间最相似的模板,以获得最大值。将最大值作为算子的输出值P(i,j),然后可以检测边缘的锐度。定义一阶微分边缘检测算子模板如图2所示。
图2 一阶微分边缘检测算子模板
2.3 边缘检测算子
边缘检测方法是基于高斯函数的一阶微分,能在噪声抑制和边缘检测之间取得良好的平衡。边缘检测的实现步骤如下:
(1)采用高斯滤波对图像进行平滑处理;
(2)采用一阶导数有限差分法计算梯度的大小和方向;
(3)不是梯度振幅的最大衰减抑制;
(4)检测并连接边缘。
3 红外图像的MATLAB界面设计及图像分割
3.1 界面的总体设计
(1)首先在MATLAB中点击“文件→新建→GUI”,启动主布局设计器。
(2)在版面设计器中添加必要的控件,根据设计需要添加3个静态文本(Static Text)、2个坐标轴控件(Axes)、2个按钮组控件(button group)和11个按钮(Push Button)。新增调整后界面如图3所示。
图3 加入控件的最初界面
(3)添加控件后,根据设计中实现的功能双击每个控件,打开属性编辑器以更改每个控件的属性。通常,需要更改String的属性以显示控件的特定功能。Tag是控件的表示形式,fontange、Fontsize等是字体属性,可以根据需要更改其他属性。最后,拖动控件以调整其位置和大小,以达到美观。例如,第一个静态文本的string属性更改为“红外图像分割处理软件”,fontsize设置为15.0,Tag更改为“hongwaituxangfengechuliruanjian”,其他控件应根据具体需要以同样的方式设置,以满足特定的需求。每个控件设置属性后的图片如图4所示。
图4 设置控件属性后的界面
(4)使用菜单编辑器(Menu Editor)打开、保存和退出文件。在Layout Designer中,单击菜单编辑器图标以打开菜单编辑器并创建新菜单,如图5所示。
图5 菜单设计器
(5)如图5所示,增加了主菜单。属性编辑器显示在右侧。将Label属性更改为“文件”,将Tag属性更改为“文件”。然后在“文件”菜单中添加子菜单以打开、保存和退出。
3.2 编写相应代码
在界面设计器上选中要实现功能的按钮,右键点击,在弹出窗口中选择“View Callbacks→Callback”,打开m文件编辑器,将相应的m代码添加到文件编辑器并保存。该文件可以通过editor进行调试。
3.3 图像分割结果
用上述的界面对红外图像进行分割处理。基于不同方法对红外图像进行预处理后的结果如图6所示。
图6 图像增强前后的图像
在图8中,邻域平均后的图像效果与原始图像相比变得略微模糊;拉普拉斯算子处理后的图像效果最差,只增加黑暗区域而模糊其他区域;中值滤波对图像细节的改善效果不是很好。总的来说,直方图均衡化更好。图片细节边缘明显改善,图片清晰。因此,采用直方图均衡化后的图像来分割的效果更好。
如图7所示,分别通过3种算子对直方图均衡化后的图像进行分割处理后的结果表明:
图7 分割处理前后的图像
(1)索贝尔算子在灰度梯度和噪声图像处理中有很好的效果,边缘更精确。
(2)一阶微分算子在处理灰度梯度较高、噪声较高的图像时效果良好。
(3)边缘检测算子不易受到噪声干扰,可检测到弱边缘。
与上述3种方法相比,边缘检测算子最适合红外图像的分割。它可以检测不受噪声干扰的微弱信号。特别是当检测到微弱信号和不平整的背景起伏干扰时,可以避开红外图像中被红外技术检测到看起来像低对比度的目标。
4 结语
综上,一般常规的MATLAB只能实现如数据分析、解方程等比较单一的功能。其实MATLAB中有许多图像处理的函数,通过这些函数可以很方便地对图像进行分析处理,而且这些函数的调用程序也相对简便一些。通过MATLAB中的图形界面设计添加MATLAB中许多函数可以做出功能强大的处理软件,在做界面时可以使用m文件添加控件和使用GUIDE工具。通过GUIDE做红外图像分割处理界面,以实现各种控件、属性编辑器、菜单编辑器。