1、第 1 页图像二值化算法研究与实现摘 要:图像二值化是图像预处理中的一项重要技术,在模式识别、光学字符识别、医学成像等方面都有重要应用。论文介绍了图像及数字图像处理技术的一些概念和相关知识;对 VC+ 软件的发展和软件在图像处理中的应用做了简要介绍;还介绍了图像二值化算法以及利用 VC+软件工具进行算法的实现。论文重点实现了图像分割技术中常用灰度图像二值化算法,如 Otsu 算法、Bernsen 算法,并对这些算法运行的实验结果进行分析与比较。 关键词:图像处理;二值化;VC+;1. 引言1.1 图像与数字图像图像就是用各种观测系统观测客观世界获得的且可以直接或间接作用与人眼而产生视觉的实体。
2、视觉是人类从大自然中获取信息的最主要的手段。拒统计,在人类获取的信息中,视觉信息约占 60%,听觉信息约占 20%,其他方式加起来才约占 20%。由此可见,视觉信息对人类非常重要。同时,图像又是人类获取视觉信息的主要途径,是人类能体验的最重要、最丰富、信息量最大的信息源。通常,客观事物在空间上都是三维的(3D)的,但是从客观景物获得的图像却是属于二维(2D)平面的。数字图像:数字图像是将连续的模拟图像经过离散化处理后得到的计算机能够辨识的点阵图像。在严格意义上讲,数字图像是经过等距离矩形网格采样,对幅度进行等间隔量化的二维函数。因此,数字图像实际上就是被量化的二维采样数组。1.2 数字图像处理
3、技术内容与发展现状数字图像处理就是采用一定的算法对数字图像进行处理,以获得人眼视觉或者某种接受系统所需要的图像处理过程。图像处理的基础是数字,主要任务是进行各种算法设计和算法实现。图像处理技术的发展大致经历了初创期、发展期、普及期和实用化期 4 个阶段。初创期开始与 20 世纪 60 年代,当时的图像采用像素型光栅进行少秒显示,大多采用中、大型机对其处理。在这一时期,由于图像存储成本高、处理设备昂贵,其应用面很窄。进入 20 世纪 70 年代的发展期,开始大量采用中、小型机进行处理,图像处理也逐渐改用光栅扫描方式,特别是 CT 和卫星遥感图像的出现,对图像处理技术的发展起到了很好的推动作用。到
4、了 20 世纪 80 年代,图像处理技术进入普及期,此时的微机已经能够担当起图形图像处理的任务。超大规模集成电路(Very Large Scale Integration, VLSI)的出现更使处理速度大大提高,设备造价也进一步降低,极大地促进了图形图像系统的普及和应用。20 世纪 90 年代是图像处理技术的实用化时期,图像处理的信息量巨大,对处理速度的要求极高。1.3 图像二值化原理及意义图像二值化是指用灰度变换来研究灰度图像的一种常用方法,即设定某一阈值将灰第 2 页度图像的像素分成大于阈值的像素群和小于阈值的像素群两部分。例如输人灰度图像函数为 ,输出二值图像函数为 ,则),(yxf )
5、,(yxg(1)Thresoldf ,25 0) ,(阈值(threshold )是把目标和背景区分开的标尺,选取适当的阈值就是既要尽可能保存图像信息,又要尽可能减少背景和噪声的干扰,这是选择阈值的原则。图像的二值化处理就是将图像上的点的灰度置为 0 或 255,也就是使整个图像呈现出明显的黑白效果。即将 256 个亮度等级的灰度图像通过适当的阈值选取而获得仍然可以反映图像整体和局部特征的二值化图像。在数字图像处理中,二值图像占有非常重要的地位,特别是在实用的图像处理中,以二值图像处理实现而构成的系统是很多的,要进行二值图像的处理与分析,首先要把灰度图像二值化,得到二值化图像,这样子有利于再对
6、图像做进一步处理时,图像的集合性质只与像素的值为 0 或 255 的点的位置有关,不再涉及像素的多级值,使处理变得简单,而且数据的处理和压缩量小。二值图像在图像分析中应用非常广泛,二值图像就是指只有两个灰度级的图像,二值图像具有存储空间小,处理速度快,可以方便地对图像进行布尔逻辑运算等特点。更重要的是,在二值图像的基础上,还可以进一步对图像处理,获得该图像的一些几何特征或者其他更多特征。2. 软件工具VC+2.1 软件概述Microsoft Visual C+是 Microsoft 公司推出的开发 Win32 环境程序,面向对象的可视化集成编程系统。它不但具有程序框架自动生成、灵活方便的类管理
7、、代码编写和界面设计集成交互操作、可开发多种程序等优点,而且通过简单的设置就可使其生成的程序框架支持数据库接口、OLE2、WinSock 网络、控制界面。它 以 拥 有 “语 法 高 亮 ”,IntelliSense( 自 动 编 译 功 能 ) 以 及 高 级 除 错 功 能 而 著 称 。 比 如 , 它 允 许 用 户 进 行 远程 调 试 , 单 步 执 行 等 。 还 有 允 许 用 户 在 调 试 期 间 重 新 编 译 被 修 改 的 代 码 , 而 不 必 重 新启 动 正 在 调 试 的 程 序 。 其 编 译 及 建 置 系 统 以 预 编 译 头 文 件 、 最 小 重
8、建 功 能 及 累 加 连 结著 称 。 这 些 特 征 明 显 缩 短 程 式 编 辑 、 编 译 及 连 结 的 时 间 花 费 , 在 大 型 软 件 计 划 上 尤 其显 著 。VC+由 C+语 言 、 MFC 的 封 装 类 、 IDE 构 成 。MFC( microsoft foundation classes, 微 软 基 础 类 库 ) 是 微 软 为 Windows 程 序员 提 供 的 一 个 面 向 对 象 的 Windows 编 程 接 口 , 它 大 大 简 化 了 Windows 编 程 工 作 。 MFC 提 供 了 一 个 标 准 化 的 结 构 提 供 了 大
9、 量 的 代 码 , 指 导 用 户 编 程 时 实 现 某 些 技 术 和 功 能 。VC 在 单 个 工 具 中 , 能 完 成 如 下 功 能 , 因 此 被 称 为 IDE(Integreted Development Enviroment, 集 成 开 发 环 境 ): 生 成 不 同 编 写 代 码 的 起 始 应 用 程 序 通 过 许 多 不 同 方 法 查 看 项 目 文 件 编 辑 源 文 件 和 包 含 文 件 建 立 应 用 程 序 的 可 视 界 面 编 译 及 链 接 运 行 及 调 试 应 用 程 序2.2 VC+开发环境Visual C+的 集 成 开 发 环
10、境 Visual Studio 提 供 了 大 量 的 实 用 工 具 以 支 持 可 视 化编 程 特 性 , 它 们 包 括 : 项 目 工 作 区 、 ClassWizard、 AppWizard、 WizardBar 等 。 下第 3 页面 对 它 们 作 逐 一 介 绍 。 Visual C+的 用 户 界 面 如 图 1 所 示 。图 1 Visual C+的 用 户 界 面图1 Visual C+的用户界面2.2.1 项目工作区Visual C+使用项目工作区来组织项目、元素以及项目信息在屏幕上出现的方式。在桌面上,工作区以窗口方式组织项目、文件和项目设置。每个项目视图都有一个相
11、应的文件夹,包含了关于该项目的各种元素。展开该文件夹可以显示该视图方式下工作区的详细信息。项目视图区包含三个选项卡,单击各选项卡,可以在其间切换。这三个选项卡从左到右依次是:ClassView、ResourceView、FileView。(1) ClassView(类视图)显示项目中定义的C+类,展开文件夹显示工程中所定义的所有类,展开类可查看类的数据成员和成员函数以及全局变量、函数和类型定义。ClassView显示所有已定义的类以及这些类中的数据成员、成员变量。(2) ResourceView(资源视图)显示项目中所包含的资源文件。展开文件夹可显示所有的资源类型,如图3。图2 类视图 图3
12、资源视图(3) FileView(文件视图)显示所创建的工程。展开文件夹可以查看工程中所包含的文件,如图4。向导栏 菜单条 工具条项目工作区 调试区 工作区第 4 页图4 文件视图2.2.2 向导栏图5 向导栏WizardBar会自动跟踪用户程序的上下文比如,当文本编辑器中的光标从一个函数移动到另一个函数时,Wizard的显示会自动更新。WizardBar工具条包含了三个相关的下拉列表框: 类(Class) 、过滤器(Filter)和成员(Member)WizardBar最右边是一个Action Control下拉选项,单击Action Control 的向下箭头符号会弹出一个菜单,用于执行跳
13、到函数定义、增加消息处理函数等操作。3. 图像二值化的算法及实现3.1 论文研究对象论文主要研究 BMP 格式的灰度图像文件。BMP(Bitmap Picture)文件格式是 Windows系统交换图形、图像数据的一种标准格式。BMP 图像的数据由四个部分组成,如表 1 所示。表 1 BMP 图像文件结构文件部分 属 性 说 明bfType 文件类型,必须是 0x424D,即字符串 “BM”bfSize 指定文件大小,包括这 14 个字节bfReservered1 保留字,不用考虑bfReservered2 保留字,不用考虑BITMAPFILEHEADER(位图文件头)bfOffBits 从文
14、件头到实际位图数据的偏移字节数biSize 该结构长度,为 40biWidth 图像的宽度,单位是像素biHeight 图像的高度,单位是像素biplanes 位平面数,必须是 1,不用考虑biBitCount 指定颜色位数,1 为二值,4 为 16 色,8 为 256 色,16,24、32 为真彩色BITMAPINFOHEADER(位图信息头)biCompression 指定是否压缩,有效的值为第 5 页BI_RGB,BI_RLE8,BI_RLE4,BI_BITFIELDSbiSizeImage 实际的位图数据占用的字节数biXPelsPerMeter 目标设备水平分辨率,单位是每米的像素数
15、biYPelsPerMeter 目标设备垂直分辨率,单位是每米的像素数biClrUsed 实际使用的颜色数,若该值为 0,则使用颜色数为 2 的 biBitCount 次方种biClrImportant 图像中重要的颜色数,若该值为 0,则所有的颜色都是重要的rgbBlue 该颜色的蓝色分量rgbGreen 该颜色的绿色分量rgbRed 该颜色的红色分量Palette(调色板)rgbReserved 保留字ImageData(位图数据)按像素按行优先顺序排序,每一行的字节数必须是 4的整倍数第一部分为位图文件头 BITMAPFILEHEADER,它是个结构体,其定义如下:typedef str
16、uct tagBITMAPFILEHEADER WORD bfType;DWORD bfSize;WORD bfReserved1;WORD bfReserved2;DWORD bfOffBits; BITMAPFILEHEADER;这个结构的长度是固定的,为 14 个字节(WORD 为无符号 16 位二进制整数,DWORD 为无符号 32 位二进制整数)。第二部分为位图信息头 BITMAPINFOHEADER,也是一个结构,其定义如下: typedef struct tagBITMAPINFOHEADER DWORD biSize; LONG biWidth;LONG biHeight; W
17、ORD biPlanes;WORD biBitCount; DWORD biCompression; DWORD biSizeImage;LONG biXPelsPerMeter;LONG biYPelsPerMeter;DWORD biClrUsed;DWORD biClrImportant; BITMAPINFOHEADER;这个结构的长度是固定的,为 40 个字节(LONG 为 32 位二进制整数)。其中,第 6 页biCompression 的有效值为 BI_RGB、BI_RLE8、BI_RLE4、BI_BITFIELDS,这都是一些Windows 定义好的常量。由于 RLE4 和 R
18、LE8 的压缩格式用的不多,一般仅讨论biCompression 的有效值为 BI_RGB,即不压缩的情况。第三部分为调色板(Palette),当然,这里是对那些需要调色板的位图文件而言的。真彩色图像是不需要调色板的,BITMAPINFOHEADER 后直接是位图数据。调色板实际上是一个数组,共有 biClrUsed 个元素(如果该值为零,则有 2 的 biBitCount 次方个元素)。数组中每个元素的类型是一个 RGBQUAD 结构,占 4 个字节,其定义如下:typedef struct tagRGBQUAD BYTE rgbBlue;BYTE rgbGreen;BYTE rgbRed;
19、BYTE rgbReserved; RGBQUAD;第四部分就是实际的图像数据。对于用到调色板的位图,图像数据就是该像素颜色在调色板中的索引值,对于真彩色图像,图像数据就是实际的 R、G、B 值。下面就 2 色、16 色、256 色和真彩色位图分别介绍。对于 2 色位图,用 1 位就可以表示该像素的颜色(一般 0 表示黑色,1 表示白色),所以一个字节可以表示 8 个像素。对于 16 色位图,用 4 位就可以表示一个像素的颜色,所以一个字节可以表示 2 个像素。对于 256 色位图,一个字节刚好可以表示 1 个像素。下面有两点值得注意:(1) 每一行的字节数必须是 4 的整倍数,如果不是,则需
20、要补齐。(2) BMP 文件的数据存放是从下到上,从左到右的,也就是说,从文件中最先读到的是图像最下面的一行的左边的第一个像素,然后是左边的第二个像素,接下来是倒数第二行左边第一个像素,左边第二个像素。依次类推,最后得到的是最上面的最右边的一个像素。3.2 灰度变换黑白图片的黑白变换叫灰度变换,彩色图片的色彩变换也叫灰度变换。一幅彩色图像的象素矩阵中每个象素由 RGB 3 种颜色按一定的比例混合形成一种颜色来表示,比如黑色使 RGB(0,0,0) ,纯红色是 RGB(0,1,0).。在处理相片时,有时可能因为环境光源太暗,使 RGB 色的值偏小,就会使图形太暗看不清,如果环境光源太光,又使图像
21、泛白,通过灰度变换,就可以使 RGB 值调和到合适的程度,使相片变得漂亮。灰度变换原理:首先提取一幅图像的一个象素,在 BMP 格式中一个象素由 8 位红色亮度值,8 位绿色亮度值和 8 位蓝色亮度值组成,只要按一定的变换函数去变换。灰度变换公式: GRAY=0.11*R+0.59*G+0.3*B (2)3.3 图像二值化常用算法3.3.1 简单阈值通过直接对图像的灰度直方图曲线进行分析,判断极小值所在的灰度级,再对所有极小值点进行相应的分类合并来最终确定阈值的位置,避免出现过分割的现象。在预处理阶段本文采用了基于各向异性扩散的平滑方法对图像进行滤波,以消除噪声,同时还可以使图像的灰度直方图曲
22、线更为连续,从而加速算法的执行效率。简单阈值是指用灰度变换来研究灰度图像的一种常用方法,即设定某一阈值将灰度图像的像素分成大于阈值的像素群和小于阈值的像素群两部分。例如输人灰度图像函数为 ,输出二值图像函数为 ,则Threshold=127 (3) 第 7 页阈值(threshold )是把目标和背景区分开的标尺,选取适当的阈值就是既要尽可能保存图像信息,又要尽可能减少背景和噪声的干扰,这是选择阈值的原则。图 6 简单阈值效果图像 由于简单阈值法过于简单,丢失部分信息。随着时代的发展人们对于图像的要求也越来越高,这种简单的方法已经不能够满足人们的要求。3.3.2 Bernsen 法局部阈值法把
23、灰度阈值选取为随像素位置变化而变化的函数,它是一种动态选择阈值的自适应方法。设图像在像素点 处的灰度值为 ,考虑以像素点 为中心的),(ji ),(jif ),(ji窗口, ( 表示窗口的边长) ,则 Bernsen 算法可以描述如下:)12()(12计算图像中各个像素点 的阈值,ji,jiT(4),(min)(max5.0)( njffTn 对图像中各像素点 用 值逐点进行二值化。,ji),(jib(5),(),(10jiTjif用 存储灰度图像的值,设 为 ,把 边界扩展成 extend矩阵。IIMNI2MN首先读取原图像 的大小为 。由于 中的元素不是每个都是在 窗口的中心,I 3所以需
24、要对灰度图像 进行扩展。首先创建一个 的矩阵 extend,把矩阵)2()(中的像素 ,而第一行和最后一行,第一列和最后一列的填充依I ),(1,(jiIjiextnd据是以它靠近的行或列为对称轴进行填充。遍历从 到 的像,extnd)1,(Nextnd素,并取以当前像素为中心的 窗口的最大像素 max 和最小像素 min,依据公式3求出阈值 。把灰度图像矩阵 赋值于另一矩阵 ,以免改变当前得到mi)(a5.0t tIB的灰度图像矩阵。遍历该矩阵 ,对当前灰度值与 比较,如果大于赋予 1,判为目标像Bt素类,否则赋予 0,作为背景像素类。显示得到的二值图像 。Bernsen 方法流程图如图 7
25、 所示。第 8 页读入灰度图像 I以 的边界为对称轴扩展为 N+2,M+2 的 矩阵I extndN+2,M+2 的 extend 矩阵求出以 为中心的 3 3 窗口的 max 和 min),(jiextnd依公式 t=0.5 (max + min)求出当前窗口的阈值 t 开 始 tjiextnd),(b(i-1,j)25=显示二值图像结 束0)1-,(jibNY图 7 Bernsen 方法流程图3.3.2.1 Bernsen方法结果分析Bernsen 方法对图像进行二值化处理,以下为研究对象的几张原始图像,图 8 所示。(a) (b) (c)第 9 页(d) (e) (f)图 8 原图(a)
26、 lenna 原始图像(256256);(b)barbara 原始图像(256256);(c)peppers 原始图像(256256);(d) lenna 原始图像(512512);(e)barbara 原始图像(512512); (f)peppers 原始图像(512512)通过调研参考文献可知,对图 8 这六幅图像都采用 Bernsen 算法进行图像二值化处理。其结果如图所示。lenna(256256)、lenna(512512)原始图像通过 Bernsen 方法二值化后的所得到的二值图像如 9 所示。barbara(256256)、barbara(512512)原始图像通过 Bernse
27、n 方法二值化后的所得到的二值图像如图 10 所示。peppers(256256)、peppers(512512)原始图像通过 Bernsen 方法二值化后的所得到的二值图像如图 11 所示。(a) (b)图 9 Bernsen 方法二值化 lenna 图像(a)二值 lenna 图像(256256); (b)二值 lenna 图像(512512)(a) (b)图 10 Bernsen 方法二值化 barbara 图像(a)二值 barbara 图像(256256); (b)二值 barbara 图像(512512)第 10 页(a) (b)图 11 Bernsen 方法二值化 peppers
28、 图像(a)二值 peppers 图像(256256); (b)二值 peppers 图像(512512)实验结果分析如表 【12】 2。表 2 Bernsen 方法处理不同像素的不同图像性能指标 图 9a 图 9b 图 10a 图 10b 图 11a 图 11b阈值(T)时间(S)/s 4.2032 8.7500 2.2970 8.5940 3.1870 8.8440熵值(H) 0.9131 0.8533 0.9339 0.9238 0.8715 0.8922因为 Bernsen 方法不存在预取阈值,得到的都是局部阈值,随像素的变化而变化,所以没有固定的阈值。图像越大用 Bernsen 算法
29、对其进行二值化处理的时间越长。3.3.3 Otsu法Otsu 在 1979 年提出的最大类间方差法(有时也称之为大津法),该方法的基本思想是:设阈值将图像分割成两组,一组灰度对应目标,另一组灰度对应背景,则这两组灰度值的类内方差最小,两组的类间方差最大。对图像 Image,记 为目标与背景的分割阈t值,目标像素数占图像比例为 ,平均灰度为 ;背景像素数占图像比例为 ,平均灰001度为 。图像的总平均灰度为: 。从最小灰度值到最大灰度1 )()(10tt值遍历 ,当 使得值 最大时 即为分割的最佳阈值。对大t 2120)(g津法可作如下理解:该式实际上就是类间方差值,阈值 分割出的目标和背景两部
30、分构成t了整幅图像,而目标取值 ,概率为 ,背景取值 ,概率为 ,总均值为 ,根据011方差的定义即得该式。因方差是灰度分布均匀性的一种度量,方差值越大说明构成图像的两部分差别越大,当部分目标点错分为背景或部分背景点错分为目标点都会导致两部分差别变小,因此使类间方差最大的分割意味着错分概率最小。记 为 图像 点处的灰度值,灰度级为 ,不妨假设 取值),(jifMN),(ji ),(jif。记 为灰度值为 k 的频率,则有:1,0mkp(6)kjifNp),(P1)(假设用灰度值 t 为阈值分割出的目标与背景分别为: 和 ,于是),(tjif),(tjif目标部分比例:(7)tip0)()(目标
31、部分点数:第 11 页(8)tipMNt00)( )(背景部分比例:(9)11)()(mit背景部分点数:(10)11)()(itPN目标均值:(11)titpt00)(/)(背景均值:(12)111 )(/)(mit ti总均值:(13)()(10t大津法指出求图像最佳阈值 g 的公式为:(14)() 2201-mtttMaxAr该式右边括号内实际上就是类间方差值,阈值g分割出的目标和背景两部分构成了整幅图像,而目标值 ,概率为 ,背景取值 ,概率为 ,总均值为 ,根据)(0t)(1t)(0t方差的定义即得该式。因方差是灰度分布均匀性的一种度量,方差值越大,说明构成图像的两部分差别越大,当部
32、分目标错分为背景或部分背景错分为目标都会导致两部分差别变小,因此使类间方差最大的分割意味着错分概率最小,这便是大津法的真正含义。其实,换一种思想也能很好的理解大津方法。 和 ,可以分别代表目标和背景的)(0t1t中心灰度, 则代表整幅图像的中心灰度,要使目标和背景得到最好的分割,当然希望分割出的目标尽量远离图像中心,即 或 尽量大,背景也尽量远离中20)(t|心,即 或 尽量大,由于希望两者都大,于是有:21)(t|)(|1t(1)两者之加权和最大:(15)()( 21201-mt0 ttMaxArg(2)两者之积最大:(16)( 2121-t0 tg注意到有 ,且 ,因此有: )(0t)()
33、(10tt。可见是二者等价的。222120()( tOtsu 方法流程图如图 7 所示。第 12 页图 12 Otsu 方法流程图开 始读入灰度图像 I求 的范围t记录 对应的 g求 时 的取值)max(ttjif),(0),(jibb(i,j)25=显示二值图像NY结 束3.3.3.1 Otsu方法实验结果分析对图 8 这六幅图像都采用 Otsu 算法进行图像二值化处理。其结果如图所示。lenna(256256)、lenna(512512)原始图像通过 Otsu 方法二值化后的所得到的二值图像如图 13 所示。barbara(256256)、barbara(512512)原始图像通过 Ots
34、u 方法二值化后的所得到的二值图像如图 14 所示。peppers(256256)、peppers(512512)原始图像通过 Otsu 方法二值化后的所得到的二值图像如图 15 所示。(a) (b)图 13 Otsu 方法二值化 lenna 图像第 13 页(a)二值 lenna 图像(256256); (b)二值 lenna 图像(512512)(a) (b)图 14 Otsu 方法二值化 barbara 图像(a)二值 barbara 图像(256256); (b)二值 barbara 图像(512512)(a) (b)图 15 Otsu 方法二值化 barbara 图像(a)二值 pe
35、ppers 图像(256256); (b)二值 peppers 图像(512512)实验结果分析如表 3。表 3 Otsu 方法处理不同像素的不同图像性能指标 图 13a 图 13b 图 14a 图 14b 图 15a 图 15b阈值(T) 109 129 114 118 96 106时间(S)/s 1.0940 3.8750 1.1870 3.6720 1.0470 3.7810熵值(H) 0.9993 1.0000 0.9997 0.9944 0.9356 0.9998图(a)为 256256 的图像,图(b)为 512512 的图像。以图 13 为例,lenna512512的图像时间为
36、3.8750,阈值为 129;lenna256256 的时间为 1.0940,阈值为 109。可知,512512 图像的执行时间要比 256256 图像的时间要长,说明图像越大,用 Otsu 方法对其进行二值化处理所需时间越长;大图像的阈值也比小图像要大。熵值是衡量图像有序化程度的一个度量,熵值越低图像越有序,图 13b 即 lenna(512512)在进行比较的图像中是最混乱的。3.3.3.2 0tsu方法和Bernsen方法实验结果比较比较其它参考文献可知,在表中用一些变量保存了有用的实验数据,T 表示 Otsu 方法、Bernsen 方法的运行时间,单位为秒。H 表示由 Otsu 方法、
37、Bernsen 方法处理得到的二值图像的熵值,单位为比特/符号。熵值的定义为:第 14 页(17)Mi xpiixpxH1/12log)()(图像的熵值反映了整幅图像的效果。信息熵是信息论中用于度量信息量的一个概念。一幅图像越是有序,信息熵就越低;反之,一幅图像越是混乱,信息熵就越高。所以,信息熵也可以说是衡量图像有序化程度的一个度量。程序的运行时间代表算法运行效率,也是算法的一项性能指数。两种性能比较如表 4 所示 【12】表 4 两种方法性能比较二值化算法 Otsu 方法 Bernsen 方法性能指标 阈值(T) 时间(S)/s 熵值(H) 时间(S)/s 熵值(H)256256 109
38、1.0940 0.9993 4.2032 0.9131lenna512512 129 3.8750 1.0000 8.7500 0.8533256256 114 1.1870 0.9997 2.2970 0.9339barbara512512 118 3.6720 0.9944 8.5940 0.9238256256 96 1.0470 0.9356 3.1870 0.8715peppers512512 106 3.7810 0.9998 8.8440 0.8922Bernsen 方法由于不存在预取阈值,得到的都是局部阈值,随像素的变化而变化,没有固定的阈值。程序运行时间 T:T(Bernse
39、n)T(Otsu),可见 Bernsen 算法要寻找局部极大、极小值,因此速度较慢;TOtsu(256256)H(Bernsen),可以见 Otsu 方法对于光照不均、噪声干扰大的图像,其二值化效果较差,其反映了整个图像的整体灰度分布情况。3.3.4 迭代法迭代法是另外一种全局二值化方法,它要求图像分割阈值的算法是基于逼近的思想,首先选择一个近似阈值作为估计值的初始值,然后进行分割,产生子图像,并根据子图像的特性来选取新的阈值,再利用新的阈值分割图像,经过几次循环,使错误分割的图像像素点降到最少。这样做的效果好于用初始阈值直接分割图像的效果。具体算法步骤如下所述:(1)求出图像中的最小灰度值和
40、最大灰度值,分别记为Z min和Z max,则阈值初值T 0为:(18)minax02T(2)根据阈值T K将图像分割成目标和背景两部分,求出两部分的平均灰度值Z 0和Z G:(19),kkzijTozijijNijZ第 15 页(20),kkzijTGzijjNijZ式中z(i,j)为图像上(i,j)点的灰度值;N(i,j)为(i,j)点的权重系数,一般N(i,j)为z(i,j)的个数。(3) 利用下式求出新阈值:(21)012GkZT(4)如果T K=TK+1,则结束,否则K=K+1,转向(2)。经实验测试发现,对于直方图双峰明显、谷底较深的图像,迭代法可以较快地获得满意结果;但是对于直方
41、图双峰不明显或图像目标和背景比例差异悬殊,迭代法所选取的阈值不如 OTSU 法。迭代法算法实现如图 16 示。图 16 迭代法算法实现图 17 迭代法效果图像对某些特定图像,某些微小的变化却会引起分割效果的巨大变化,两者数据只是稍有变化,但分割效果却反差极大,其中原因还有待进一步研究。4. 总结第 16 页Bernsen 法虽然能够根据局部灰度特性来自适应地选取阀值,有较大的灵活性,但是仍然存在缺点和问题:实现速度慢、有伪影现象、有笔画断裂现象。简单阈值法能减少背景和噪声的干扰迭代所得的阀值分割的图像效果不好,丢失部分图像信息,所以我主要采用 Otsu 法和迭代法。Otsu 法是经典的非参数、
42、无监督自适应阈值方法,是一种直方图技术。Otsu 法实现简单,对于具有明显双峰直方图的图像效果明显,但对于低对比度和光照不均匀的图像效果不佳,抗噪声能力差,因而应用范围受到极大限制。对于直方图双峰明显、谷底较深的图像,迭代法可以较快地获得满意结果;但是对于直方图双峰不明显或图像目标和背景比例差异悬殊,迭代法所选取的阈值不如 OTSU 法。几种常用的图像二值化算法各有优缺点,由于时间的问题本次设计没有逐一研究。第 17 页参考文献1 Liu Jieping,Yu Yinglin.A flexible method for image noise removalJ.Joural of South
43、China University Technology,2000,28(2):6063.2 A Piva, M Barni,F Bartolini, V Cappellini. DCT-based watermark recovering without resorting to the uncorrupted original imageA.Proceedings of 4th IEEE International Conference on Image Processing ICIP97C.Santa Barbara,CA,USA:ICIP,1997.3 Zhong wei.Image w
44、atermarking using Legendre arrayJ.Journal of china institute of communications,2001,22(1):16.4 王建卫 .彩色图像的中值滤波算法的改进与应用J.哈尔滨商业大学大学报:自然科学版.2006,22(4):6769.5 陈丹,张蜂 ,贺贵明.一种改进的文本图像二值化算法J.计算机工程,2003,29(13):85 86.6 A Hashizume, P S Yeh, A Rosenfeld. A Method of Detecting the Orientation of Aligned Component
45、sJ. Pattern Recognition Letters, 1986,4:125132.7 L.OGorman. The Document Spectrum for Page Layout Analysis. IEEE Transactions. PAMI, Vol.15,No.11, 1993:pp.11621173.8 郑咸义 ,张颖豪.一个改进的 LBG 算法J.计算机辅助设计与图形学学报,1997,9(4):335338.9 张爱华,余胜生 ,周敬利 . 一种基于边缘检测的阈值分割J. 661663 算法,小型微型计算机系统,2003,24(.4) 10 冯国进, 顾国华,陈钱
46、. 基于形态学的红外图像边缘增强J. 453454 激光与红外,2003,33(6) 11 章毓晋 , 图像理解与计算机视觉J,北京: 清华大学出版社, 1999, 4 12 吕俊哲,图像二值化算法的研究与实现.科技情报与经济,2004,5455The Research on the Binary Image Algorithm and Its RealizationAbstract: Image binarization, as an important technology in image pre-processing, is widely-employed in pattern rec
47、ognition, optical character recognition, medical imaging and so forth. In this paper, some notions and relative knowledge in digital image processing technology are introduced; then, the development of VC+ and its application in image processing briefly introduced; in addition, the method of graysca
48、le image binarization and how to implement these algorithms based on VC+ are presented. This paper mainly implements the grayscale image binarization method in image segmentation technology, such as Otsu algorithm and Bernsen algorithm, and analyzes and compares the experimental results of the above algorithms.Key words: Image processing; Binarization;VC+