基于opencv的一种局部自适应快速二值化方法(积分法)

本文介绍了如何使用opencv实现一种基于积分图的局部自适应快速二值化方法,该方法解决了光照不均匀图像二值化的难题。通过计算每个区域的像素值总和并除以像素点个数得到平均阈值,从而确定每个区域的二值化标准,提高处理效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于用opencv自带的函数adaptiveThreshold()在光照不均匀的图像中进行二值化时,效果不佳,之后看了Derek Bradley和Gerhard Roth于2007年写的《Adaptive Thresholding Using the Integral Image》,方法简单实现简便且速度较快,本文基于opencv用程序实现了它。其核心思想可以由下面两张图概括,先得到图像中

各处的像素值(图像为单通道),如图1左。之后得到每个点的左上方所有点的像素值之和(包括该点)并可用一个二维数组暂时存储,如图一右所示,例如,第二行第二列中9=4+0+4+1,第二行第三列中12=4+1+2+4+1。一般地,所谓二值化就是给定一个阈值,当图像中某一点的像素值大于阈值时令它的像素为255(0),像素值小于阈值时为0(255)。而所谓区域二值化,就是把图片划分为若干的区域,每个区域有各自的阈值,再分别判定。



                                                             图1  

如图2所示,我们要判定区域D时,就可以利用图1右的表,设P(x,y)为点(x,y)的像素值(已转换为图一右的值),对于区域D有,P(D)=P(x2,y2)-P(x2,y1)-P(x1,y2)+P(x1,y1),得到区域D的总阈值,再除以区域D的像素点个数得到平均阈值P=P(D)/N,对于区域中心点(i,j)若P(i,j)>P

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值