图像二值化

图像二值化即将原图像转换为仅包含0和255两个灰度值的图像。图像二值化的目的是简化图像,突出目标轮廓,方便后续图像处理。例如,在文本识别、边缘检测、图像分割等应用场景中,二值化图像可以帮助算法更准确地识别图像中的边缘和特征。此外,图像二值化还可以帮助减小图像的文件大小,便于存储和传输图像。

本节内容包含:

模块原理

图像二值化模块采用的二值化方式共有如下五种,各方式的工作原理有所差异。

硬阈值二值化

根据预设的低灰度阈值和高灰度阈值进行图像二值化。输入图像像素点的灰度值大于低灰度阈值或小于高灰度阈值时,则为目标(灰度值转换为255),否则则为背景(灰度值转换为0)。

均值二值化

根据以下四个参数进行图像二值化。

  • 滤波核宽度

  • 滤波核高度

  • 比较类型

  • 阈值偏移量

具体计算过程如下:

  1. 在滤波核尺寸范围内对输入原图进行均值滤波,得到背景图像。

  2. 计算输出原图和背景图上相同像素点的灰度值之差。

  3. 根据差值、预设的比较类型、预设的阈值偏移量,判断像素点为目标还是背景。

    当像素点的差值满足预设的比较类型和阈值偏移量时,则为目标。其中比较类型包括:≥、≤、=、≠。

例子:假设预设的核宽高分别为15和16,比较类型为≥,阈值偏移量为20,那么这些配置表示:“原图和背景图差值≥20的像素点为目标,否则为背景。其中背景图通过核尺寸为(15,16)的均值滤波求得。”

图 1 输入原图
图 2 背景图
图 3 二值化图
高斯二值化

根据以下四个参数进行图像二值化。

  • 高斯滤波核尺寸

  • 高斯标准差

  • 比较类型

  • 阈值偏移量

其中高斯滤波核尺寸和高斯标准差用于控制高斯滤波程度。两者越大,滤波效果越强。

具体算法工作流程与上文提及的均值二值化的相同,均为先滤波得到背景图,再将原图和背景图做差,最终得到满足预设关系的二值图。

Sauvola二值化

根据以下五个参数进行图像二值化。

  • 校正系数

  • 动态范围

  • 分割类型

  • 滤波核宽度

  • 滤波核高度

具体算法过程为先计算每个像素点在设定核尺寸下的灰度均值m和标准差std,再根据预设的分割类型进行如下判断:

  • 分割类型为亮背景时,灰度均值满足如下计算公式则为目标,否则为背景。

    图 4 分割类型为亮背景时
  • 分割类型为暗背景时,灰度值满足如下计算公式则为目标,否则为背景。

    图 5 分割类型为暗背景时
说明:

以上公式中的k和r分别表示校正系数和动态范围。

Sauvola二值化算法工作流如下图所示。

图 6 算法工作流
自动二值化

算法根据最大类间方差法计算自动阈值T,并根据该阈值进行图像二值化。输入图像中灰度值大于T的像素点为目标,小于的为背景。该方式不涉及预设参数。

使用方法

以下对该模块的使用方法分为前后序模块和应用示例两个方面进行介绍。
前后序模块

在流程中,图像二值化的:

  • 前序模块一般为图像源。该模块可为图像二值化提供原图输入。

  • 后序模块一般为其他图像处理模块以及识别、定位、测量等模块。图像二值化输出的二值图可用于识别、定位和测量。

应用示例

相关应用示例请参见形态学处理中的示例。

参数配置

以下仅介绍该模块的运行参数详情。通过配置运行参数,可定义当前模块如何处理输入的数据。

说明:

以下运行参数中的不同二值化方式适用于不同场景:

  • 硬阈值二值化:适用于光影影响较小的环境。

  • 均值二值化:一般用于平滑图像,消除噪声。

  • 高斯二值化:一般用于在保证图像原有信息特征的情况下消除部分噪声。

  • Sauvola二值化:适用于对背景单一、光照不均匀的图像进行二值化处理。

图 7 原图

硬阈值二值化示例

均值二值化示例

高斯二值化示例

Sauvola效果示例

硬阈值二值化

需设置高阈值低阈值。具体原理参见上文模块原理中提及的硬阈值二值化

低阈值

用于二值化的低灰度阈值。

灰度指黑白照片上像素点的明暗指数,值为0时显示为黑色,为255时显示为白色

高阈值

用于二值化的高灰度阈值。

  • 当低阈值小于高阈值时,如果像素点灰度值在高低阈值大小范围内,那么该像素点灰度值将被置为255。

  • 当低阈值大于高阈值时,如果像素点灰度值在高低阈值大小范围外,那么该像素点的灰度值将被置为255。

均值二值化

需设置如下子参数。

滤波核宽度/高度

均值滤波时的矩形滤波核宽度与高度,滤波核主要用于图像遍历。均值滤波指用图像中某点周围像素的平均值来作为该点的像素值。

比较类型

将已经通过滤波核宽度/高度遍历后得到的灰度均值按大于等于、小于等于、等于、不等于四种类型进行处理,满足比较类型条件的图像区域的灰度值置为255。

阈值偏移

可容忍的与背景差异的最大阈值。

高斯二值化

需设置如下参数。

高斯滤波核

高斯滤波核的大小,滤波核越大滤波效果越平滑。

高斯标准差

高斯标准差越大,高斯二值化效果越明显。

比较类型

将已经通过高斯滤波核遍历后得到的灰度高斯值按大于等于、小于等于、等于、不等于四种类型进行处理,满足比较类型条件的图像区域的灰度值置为255。

阈值偏移

得到高斯值后和偏移量做累加运算得到的结果作为最终高斯值。

Sauvola二值化

需设置如下参数

校正系数

对应上文模块原理中提及的二值化计算公式中的k,校正系数越大,二值化阈值越大。

动态范围

对应上文模块原理中提及的二值化计算公式中的r,动态范围越大,二值化阈值越小 。

分割类型

分为暗于背景和亮于背景两种。分割类型的设置影响最终的二值化效果,具体见上文模块原理中提及的Sauvola二值化

滤波核宽/高度

滤波核的宽度和高度,滤波核主要用于图像遍历。

自动

即对图片进行自动二值化处理,具体原理见上文模块原理中提及的自动二值化

模块结果

该模块输出结果中各项参数详情,请参见图像二值化模块的输出结果