Qraft

二值化

二值化是将灰度图像的每个像素以阈值为基准转换为白(亮)或黑(暗)两值的图像处理。比阈值亮的像素分为白,暗的分为黑。在二维码解码中,这是判定模块「暗」还是「亮」的核心步骤。

二值化的精度很大程度上取决于阈值的设定方法。固定阈值(对整个图像应用相同值)在均匀照明条件下有效,但在有阴影或照明不均的环境下部分模块会被误判。自适应阈值(对图像的局部区域动态计算阈值)即使在照明不均的环境下也能实现稳定的二值化。现代手机的二维码读取器采用自适应阈值。

二值化变得困难的情况包括:低对比度的二维码(浅色模块)、逆光环境(二维码背后有强光源)、反射(光泽表面印刷的二维码)、运动模糊(移动中扫描)。纠错功能可以补偿部分误判,但根本上最好的对策是在适当环境下印刷和张贴高对比度的二维码。