自适应阈值算法
自适应阈值算法1用到了积分图(Integral Image)的概念。积分图中任意一点 ( x , y ) (x,y) (x,y)的值是从图左上角到该点形成的矩形区域内所有值的和。即:
I ( x , y ) = ∑ x ′ ≤ x y ′ ≤ y i ( x ′ , y ′ ) I(x,y)=\sum_{\substack{x'\leq x \\ y' \leq y}}i(x',y') I(x,y)=x′≤xy′≤y∑i(x′,y′)
比如下图中的 9 9 9,就是左上角的 4 + 1 + 0 + 4 4+1+0+4 4+1+0+4
自适应算法的主要思想是以一个像素点为中心设置大小为 s × s s \times s s×s 的滑窗,滑窗扫过整张图像,每次扫描均对窗口内的像素求均值,并将均值的 1 − t % 1-t \% 1−t% 作为局部阈值 。若窗口中心的像素值低于局部阈值 ,赋值0;高于局部阈值 ,赋值为255。这种算法需要对很多相互有重叠的区域进行多次加和计算。而积分图的使用可以有效地降低计算的复杂度和操作总次数。
为了计算积分图,需要在每个位置存储其左边和上方所有 f ( x , y ) f(x,y) f(x,y) 值的总和:
I ( x , y ) = f ( x , y ) + I ( x − 1 , y ) + I ( x , y − 1 ) − I ( x − 1 , y − 1 ) I(x,y)=f(x,y)+I(x-1,y)+I(x,y-1)-I(x-1,y-1) I(x,y)=f(x,y)+I(x−1,y)+I(x,y−1)−