【安防知识网】图像处理软件包
图像处理软件包通常是以菜单的形式出现的,在Windows操作系统的环境下来设计菜单形式的图像处理软件包,比在DOS操作系统的环境下容易得多,外设的管理和汉字的注释不再费事,而且用VisualC++编程,已有现成的菜单形式可以借用,这样可以集中精力去设计图像处理的算法。
图像处理软件包分为专用图像处理软件包和通用图像处理软件包,专用图像处理都以软件处理为主,解决特定的问题。通用图像处理软件包主要采用菜单形式,其算法相对比较简单,只是要求具有一些初步的算法,但一定具有图像输入功能。
菜单一般有多级,主菜单里可以分为几个大项,如文件管理、图像获取、图像编辑、图像二值化、边缘增强、图像量测、图像变换等,每一个菜单大项的下级菜单又分若干小项,现以单屏图像处理软件包为例,简要介绍菜单的各项内容。
图2 Windows 图像基础结构的总体结构图
文件管理
这一项主要是图像的存盘和加载,有时把图像的打印也放在这一类里。图像的存盘和加载要解决两个主要的问题,一个是图像区域的确定,另一个是图像格式的规范。
图像区域分为规则区域和不规则区域,规则区域通常指矩形区域,不规则区域通常指用鼠标器画出来的一个封闭的单连通区域。
在规则区域的情况下,存储图像时常用鼠标器来确定所需存储的区域,加载时又可以用鼠标器来确定所加载图像的显示位置。图像处理常常按整幅图像来进行,有时也把区域分为整幅图像区域和局部图像区域,由于整幅操作不再需要鼠标器来确定区域,因此可以简化操作。
规则区域图像的格式有自由格式和标准格式两种。对于灰度图像,自由格式文件的第一个字节为0,表示是灰度图像,后两个字节表示矩形区域的宽,接下来的两个字节表示矩形区域的高,随后是灰度图像数据,一个字节表示一个像素,每个像素按照从左到右、从上到下排列。对于彩色图像,常用RGB基色的彩色空间。其自由格式文件的第一个字节为1,表示是彩色图像,后两个字节表示矩形区域的宽,接下来的两个字节表示矩形区域的高,随后是彩色图像数据,三个字节表示一个像素,顺序是R,G,B,每个像素按照从左到右、从上到下的顺序排列。标准格式的图像文件有BMP,TIFF等格式,也有压缩存储的格式。
不规则区域的图像存储和加载比一般矩形区域复杂,首先遇到的是区域边界的描述问题,一般有多边形描述方法和链码(chain codes)描述方法。
不规则的图像文件的结构如表1所示。文件头是一个CHAIN-HEAD型的结构体的对象;链码数据就是从图像起始扫描点(xs,ys)开始,以顺时针方向沿区域外边界曲线行走得到的各个节点的数据,其数目由文件头的code_size确定;扫描线的位置数据是若干个CHAIN_SORT型结构体的对象,数目由文件头中的couple_size确定。
[nextpage]图像获取
图像输入设备有摄像机、扫描仪等,要在菜单里嵌入这些设备的图像输入功能,就必须使用相应设备的设备驱动程序。当摄像机输入时,有两种状态:
·直通状态,这是为了调整摄像机的工作状态,如聚焦、调整光圈等。这种“直通”,实际上是一个连续数字化、传输、显示的过程;
·采集状态,采集分单帧采集和多帧采集,多帧采集时至少需要开辟相应存储容量的内存空间。
图像编辑
图像编辑功能包括图像的放大、缩小、旋转、平移、文字注释、图像动态显示等。软件进行的图像放大基本上都是无级放大,所谓无级放大,是指放大倍数可以是非整数的放大,如放大2.2倍。图像放大时,要进行插值处理,有两种插值处理的方法:
·重读插值,如放大两倍,即在x,y两个方向上都放大两倍,这样一个点变成了2×2邻域的四个点,每个点的数值相同且为原来点的值;
·线性插值,双线性插值的放大效果最好。
图像缩小一般是抽点,即按缩小的比例把多余的点去掉。图像的旋转是原始图像乘一个旋转矩阵,旋转的角度可以由鼠标器确定。算法实现时,首先应确定旋转后得到的区域,由这个区域的每一个点去对应原始图像的点,即把原始图像对应点的值来作为该点的值,这样做的好处是不会出现空点。
灰度变换
在数字图像处理中,经常需要对图像的灰度进行某种变换,达到好的视觉效果或者便于以后的特征提取和识别。灰度变换是图像预处理(preprocessing)的基本内容之一。下面只简介3种灰度变换,其数学公式从略。
1、灰度级的线性变换
图像由于成像时曝光不足或过度,成像设备的非线性或图像记录设备动态范围太窄等因素,都会产生对比度不足的弊病,使图像中的细节分辨不清。这时如果将图像灰度线性扩展,常能显著改善图像的观看质量。
2、灰度级的对数变换
当希望对图像的低灰度区有较大的扩展而对高灰度区压缩时,可采用灰度级的对数变换,它能使图像灰度的分布均匀,与人的视觉特性相匹配。
3、直方图统计与直方图均衡化
对于灰度图像可统计其直方图,将统计结果用图示法直观地表示出来。直方图均衡化是当一个图像具有平坦的均匀分布直方图时,各个灰度等级都能充分发挥作用,可以得到比较好的视觉效果。
边缘增强
边缘是图像的最基本特征。边缘包括着有价值的目标边界信息,这些信息可以用于图像分析、目标识别以及图像滤波。边缘检测和边缘增强的常用方法是微分运算。图像中灰度发生突变或不连续的地方称为边缘,这些地方的微分值往往比较大。
下面只罗列7种边缘增强方法及其检测算子,其数学公式这里从略,应用时可参阅有关专著资料。常用的边缘增强方法有:
·双向一次微分;
·二次微分;
·Roberts算子。这是一种差分算子,由于窗口小,平滑噪声作用也小,改进的另两种算子是Prewitt算子和Sobel算子,它们对有噪声的阶跃型边沿的检测能力比Roberts的好;
·Sobel微分运算。Sobel可以产生较好的边缘检测效果,而且受噪声的影响也比较小;
·拉普拉斯运算。拉普拉斯算子有时找到的边缘是伪边缘,特别是在图像灰度变化不大的区域。因为这时小的灰度干扰(噪声)便可能使二阶导数产生过零输出;
·Robinson边缘检测。Robinsons算子实际上是4个不同的模板,分别算出4个加权和,进行比较,取其中最大者作为最终结果。由于它考虑到了水平、垂直、45°、135°各个方向的灰度值的影响,所以通常滤除噪声效果较好,边界较清晰;
·Frei&Chen边缘检测等。
[nextpage]二值化
所谓二值化,就是通过设定阈值(threshold)把灰度图像变换成仅用两个值分别表示目标和背景的二值图像。图像二值化可根据下列的阈值处理(thresholding)来进行(见图(1))。
通常,用最后的二值图像g ( i , j )中的1值(亮)部分表示目标子图,0值(黑)部分表示背景子图。确定二值化阈值t的方法叫做阈值选择,大多数的阈值选择以图像的灰度概率密度函数(直方图)为依据。
二值化方法有:
1、非0像素置1法二值化
对于灰度图像,把灰度值非黑的所有像素变为白,其他为黑,得到二值图像。这种方法仅在背景象素多为黑时有效。
2、固定阈值法二值化
对于灰度图像,小于阀值的像素变为黑,大于阈值的像素变为白,阈值由用户输入。当已经了解灰度直方图的情况,且预先通过对直方图的统计已经找到了目标与背景之间的阈值时,宜采用这种方法。
3、微分直方图法二值化
微分直方图法是设想图像中的目标和背景之间的边界灰度值急剧变化,此时利用灰度的变化率(微分值)来决定阀值。
噪声消除
数字图像中往往存在着噪声干扰,如光电元件产生的随机噪声,数字化产生的量化噪声等。这些噪声与图像信号可以是相加的或相乘的,这种噪声干扰下的图像可以用数字处理的办法得到改善。消除图像中的噪声干扰的有效办法是用局部平滑滤波,通过平滑滤波可以达到消除噪声、提高图像质量的目的。
滤波方法有:
图3 3×3十字中值滤波和5×5十字中值滤波的数据形式
[nextpage]1、二值图形麻点噪声的滤除
对于二值图像f,消去麻点噪声。设图像像素f ( i , j )周围8个像素的灰度平均值为a,若| f ( i , j )-a |≤0.5时,则f ( i , j )黑白反转;若大于0.5时则f ( i , j )不变。
2、3×3平均值滤波
对于灰度图像f,设像素f ( i , j )周围8个像素的灰度平均值为a,进行如下处理:
·若| f ( i , j )-a | ·若| f ( i , j )-a |≥e,则 f ( i , j )不变; ·程序中,误差容限e由用户指定。 3、中值滤波 中值滤波可以有效地去除脉冲噪声。3×3十字中值滤波和5×5十字中值滤波的数据形式分别如图3(a)、(b)所示。5×5十字中值滤波的效果比3×3十字中值滤波的效果要好,但计算时间要长。 4、多帧平均 多帧平均可以有效地去除雪花噪声,具体做法是连续采集M帧图像,每帧图像的宽、高为H,V,多帧平均算法为式中,G (x , y)为输出图像,f (x , y , k )为第k帧的输入图像。 图像量测 简单的图像量测包含量测两点之间的距离以及计算闭合区间的周长、面积、重心等。其计算公式均相对简单,一般测量的书藉资料中都有,这里就从略了。