图像二值化即将原图像转换为仅包含0和255两个灰度值的图像。图像二值化的目的是简化图像,突出目标轮廓,方便后续图像处理。例如,在文本识别、边缘检测、图像分割等应用场景中,二值化图像可以帮助算法更准确地识别图像中的边缘和特征。此外,图像二值化还可以帮助减小图像的文件大小,便于存储和传输图像。
本节内容包含:
图像二值化模块采用的二值化方式共有如下五种,各方式的工作原理有所差异。
根据预设的低灰度阈值和高灰度阈值进行图像二值化。输入图像像素点的灰度值大于低灰度阈值或小于高灰度阈值时,则为目标(灰度值转换为255),否则则为背景(灰度值转换为0)。
根据以下四个参数进行图像二值化。
滤波核宽度
滤波核高度
比较类型
阈值偏移量
具体计算过程如下:
在滤波核尺寸范围内对输入原图进行均值滤波,得到背景图像。
计算输出原图和背景图上相同像素点的灰度值之差。
当像素点的差值满足预设的比较类型和阈值偏移量时,则为目标。其中比较类型包括:≥、≤、=、≠。
例子:假设预设的核宽高分别为15和16,比较类型为≥,阈值偏移量为20,那么这些配置表示:“原图和背景图差值≥20的像素点为目标,否则为背景。其中背景图通过核尺寸为(15,16)的均值滤波求得。”
根据以下四个参数进行图像二值化。
高斯滤波核尺寸
高斯标准差
比较类型
阈值偏移量
其中高斯滤波核尺寸和高斯标准差用于控制高斯滤波程度。两者越大,滤波效果越强。
具体算法工作流程与上文提及的均值二值化的相同,均为先滤波得到背景图,再将原图和背景图做差,最终得到满足预设关系的二值图。
根据以下五个参数进行图像二值化。
校正系数
动态范围
分割类型
滤波核宽度
滤波核高度
具体算法过程为先计算每个像素点在设定核尺寸下的灰度均值m和标准差std,再根据预设的分割类型进行如下判断:
分割类型为亮背景时,灰度均值满足如下计算公式则为目标,否则为背景。
分割类型为暗背景时,灰度值满足如下计算公式则为目标,否则为背景。
以上公式中的k和r分别表示校正系数和动态范围。
Sauvola二值化算法工作流如下图所示。
算法根据最大类间方差法计算自动阈值T,并根据该阈值进行图像二值化。输入图像中灰度值大于T的像素点为目标,小于的为背景。该方式不涉及预设参数。
以下仅介绍该模块的运行参数详情。通过配置运行参数,可定义当前模块如何处理输入的数据。
以下运行参数中的不同二值化方式适用于不同场景:
硬阈值二值化:适用于光影影响较小的环境。
均值二值化:一般用于平滑图像,消除噪声。
高斯二值化:一般用于在保证图像原有信息特征的情况下消除部分噪声。
Sauvola二值化:适用于对背景单一、光照不均匀的图像进行二值化处理。
硬阈值二值化示例 |
均值二值化示例 |
---|---|
![]() |
![]() |
高斯二值化示例 |
Sauvola效果示例 |
---|---|
![]() |
![]() |
需设置高阈值或低阈值。具体原理参见上文模块原理中提及的硬阈值二值化
当低阈值小于高阈值时,如果像素点灰度值在高低阈值大小范围内,那么该像素点灰度值将被置为255。
当低阈值大于高阈值时,如果像素点灰度值在高低阈值大小范围外,那么该像素点的灰度值将被置为255。
需设置如下子参数。
需设置如下参数。
需设置如下参数
对应上文模块原理中提及的二值化计算公式中的k,校正系数越大,二值化阈值越大。
对应上文模块原理中提及的二值化计算公式中的r,动态范围越大,二值化阈值越小 。
分为暗于背景和亮于背景两种。分割类型的设置影响最终的二值化效果,具体见上文模块原理中提及的Sauvola二值化
滤波核的宽度和高度,滤波核主要用于图像遍历。
即对图片进行自动二值化处理,具体原理见上文模块原理中提及的自动二值化。
该模块输出结果中各项参数详情,请参见图像二值化模块的输出结果。