![](https://csdnimg.cn/release/download_crawler_static/87772237/bg1.jpg)
微信公众号:FPGA 开源工作室
基于
FPGA
水平垂直投影法(字符分割)的实现
作者:
OpenS_Lee
1 背景知识
图像对应方向的投影,就是在该方向取一条直线,统计垂直于该直线(轴)的图像上的
像素的黑点数量,累加求和作为该轴该位置的值;基于图像投影的切割就是将图像映射成这
种特征后,基于这种特征判定图像的切割位置(坐标),用这个坐标来切割原图像,得到目
标图像。
OTSU
算法是由日本学者
OTSU
于
1979
年提出的一种对图像进行二值化的高效算法。
最大类间方差法是由日本学者大津于
1979
年提出的
,
是一种自适应的阈值确定的方法
,
又叫
大津法,简称 OTSU。它是按图像的灰度特性,将图像分成背景和目标 2 部分。背景和目标之
间的类间方差越大
,
说明构成图像的
2
部分的差别越大
,
当部分目标错分为背景或部分背景错
分为目标都会导致 2 部分差别变小。因此,使类间方差最大的分割意味着错分概率最小。对
于图像
I(x,y),
前景
(
即目标
)
和背景的分割阈值记作
T,
属于前景的像素点数占整幅图像的比例
记为ω0,其平均灰度μ0;背景像素点数占整幅图像的比例为ω1,其平均灰度为μ1。图像的总平
均灰度记为
μ,
类间方差记为
g
。假设图像的背景较暗
,
并且图像的大小为
M×N,
图像中像素的
灰度值小于阈值 T 的像素个数记作 N0,像素灰度大于阈值 T 的像素个数记作 N1,则有:
ω0=N0/ M×N---------------------------------------------------- (1)
ω1=N1/ M×N ----------------------------------------------------(2)
N0+N1=M×N---------------------------------------------------- (3)
ω0+ω1=1 -------------------------------------------------------- (4)
μ=ω0*μ0+ω1*μ1------------------------------------------------ (5)
g=ω0(μ0-μ)^2+ω1(μ1-μ)^2----------------------------------- (6)
将式(5)代入式(6),得到等价公式: g=ω0ω1(μ0-μ1)^2----------------(7)
采用遍历的方法得到使类间方差最大的阈值
T,
即为所求。
Otsu 算法步骤如下:
设图象包含
L
个灰度级
(0,1…,L-1)
,灰度值为
i
的的象素点数为
Ni
,图象总的象素点
数为 N=N0+N1+...+N(L-1)。灰度值为 i 的点的概为:P(i) = N(i)/N.门限 t 将整幅图象分为暗
区 c1 和亮区 c2 两类,则类间方差σ是 t 的函数:σ=a1*a2(u1-u2)^2 式中,aj 为类 cj 的面
积与图象总面积之比,
a1 = sum(P(i)) i->t, a2 = 1-a1; uj
为类
cj
的均值,
u1 = sum(i*P(i))/a1