无需登录 数据私有 本地保存

自适应阈值二值化 - 局部光照不均处理

18
0
0
0

自适应阈值二值化

处理局部光照不均图像,智能局部阈值分割

原图
上传图片以开始
二值化结果
处理后显示结果

拖拽图片到此处,或点击上传

支持 JPG / PNG / WebP / BMP,也支持 Ctrl+V 粘贴

常见问题与知识点
什么是自适应阈值二值化?与全局阈值有何不同?

全局阈值(如Otsu大津算法)使用单一阈值处理整张图像,当图像光照均匀时效果很好。但在光照不均的场景下(如手机拍摄的文档、有阴影的纸张),单一阈值会导致亮部过曝或暗部细节丢失。

自适应阈值为每个像素计算其局部邻域内的阈值,能有效应对光照变化。对于每个像素,算法考察其周围 blockSize × blockSize 区域的亮度分布,用局部均值(或高斯加权均值)减去常数C作为该像素的阈值。这样亮区的阈值自动升高,暗区的阈值自动降低,从而在全局光照不均的情况下仍能准确分割前景与背景。

典型应用场景:车牌识别预处理、文档扫描二值化、医学图像分割、工业缺陷检测、指纹识别等。

块大小 (Block Size) 如何选择?

块大小决定了计算局部阈值的邻域范围,必须是奇数(如3、5、7…51):

  • 较小值(3-11):能捕捉细小特征和文字笔画,但容易在平坦区域产生噪点,适合高分辨率、细节丰富的图像。
  • 中等值(13-25):平衡细节与平滑度,适合大多数文档和一般场景。推荐默认值15-21。
  • 较大值(27-51):产生更平滑的二值化结果,减少噪点,但可能丢失小字符或细线。适合光照变化缓慢的大幅图像。

经验法则:块大小应略大于图像中目标特征(如文字笔画宽度)的尺寸,以保证局部统计的稳定性。

常数 C 的作用是什么?如何调整?

常数C是局部均值(或高斯加权均值)的偏移量。对于每个像素,阈值 = 局部均值 - C:

  • C > 0(正值):阈值低于局部均值,更多像素被判为前景(黑色),适合背景较亮、前景较暗的场景。C越大,黑色区域越多。
  • C < 0(负值):阈值高于局部均值,更多像素被判为背景(白色),适合前景较亮、背景较暗的场景。C越小(越负),白色区域越多。
  • C = 0:阈值等于局部均值,这是一种自然的中间分割。

推荐起始值:C = 2~5(正值),这通常能产生干净的二值化效果。如果文字断裂(太细),减小C或使用负值;如果背景噪点太多,增大C。

均值自适应 vs 高斯自适应:有什么区别?

两者核心区别在于局部邻域内各像素的权重分配

  • 均值自适应(Mean):邻域内所有像素权重相同,计算简单快速。使用积分图技术可实现O(1)时间复杂度,适合实时处理。对均匀渐变的光照效果好。
  • 高斯自适应(Gaussian):邻域内像素按高斯分布加权,中心像素权重最高,远离中心的像素权重逐渐降低。更符合人眼感知特性,对复杂光照模式更鲁棒,边缘保持更好。本工具使用多次Box Blur迭代近似高斯核。

大多数情况下两者效果相近。高斯方法在边缘附近产生的伪影更少,但计算量略大。对于文档图像,均值方法通常已足够好。

为什么我上传的图片处理结果有黑边或白边?

图像边缘的像素其邻域部分超出图像边界。本工具对边界像素只计算有效区域内的统计量(使用clamp策略),但边缘附近的局部统计可能不够稳定。如果块大小较大而图像较小,边缘效应会更明显。建议:

  • 适当减小块大小
  • 在图像边缘留出一些边距
  • 处理后手动裁剪边缘
这个工具适合处理哪些类型的图像?

自适应阈值二值化特别适合以下场景:

  • 📄 手机拍摄的文档/票据——常有闪光灯造成的光照不均
  • 📷 白板/黑板照片——角落偏暗、中心偏亮
  • 🔍 显微镜图像——照明场不均匀
  • 🖨️ 老旧扫描件——纸张泛黄、有褶皱阴影
  • 🚗 车牌识别预处理——不同区域光照差异大
  • 🩻 医学X光/CT图像——需要局部对比度增强

如果您的图像光照均匀,使用全局阈值(如Otsu方法)可能更简单且效果相当。