图像二值化的概念
图像二值化是指将指将256阶的灰度图通过合适的阈值,转换为黑白二值图。即像素或0和255。其目的通常为将图像的前后景进行分割,使图像变得简单,数据量减小,能凸显出感兴趣的目标的轮廓。主要用于目标物体检测,目标跟踪、物体分离等领域
二值化的数学表达,对于图像中的像素[x,y],其灰度值为f(x,y), 设置门限值(阈值)为TH,则:
g ( x , y ) { 255 , i f f ( x , y ) > = T H 0 , i f = = i f f ( x , y ) < T H g(x,y) \begin{cases} 255, &if\ f(x,y) >=TH\\ 0, &if==if\ f(x,y) <TH \end{cases} g(x,y){
255,0,if f(x,y)>=THif==if f(x,y)<TH
图像二值化阈值选择算法
二值化的关键在于阈值的选择。合理的阈值应该尽可能的分离前景和背景,如何来确定阈值呢,有以下几种求阈值的方法
局部二值化法
全局二值化即使用单一阈值对画面中的所有像素进行分割。通常可以分割直方图具有双峰性的图像。前景和背景的分布有交错部分,表示部分前景和背景像素颜色相同。由于有交错部分存在,通过阈值将前后景完全分离是不可能的,只能寻找最优解
p-tile法
需要预先获得图像中前景占完整画面的比值P%,依次累积灰度直方图,直
到该累积值大于或等于前景图像(目标)所占面积,此时的灰度级即为所
求的阈值。
最小误判概率法
设前景像素点灰度概率密度函数为p(x),背景像素点灰度概率密度函数为q(x),分布函数如图。前景像素个数占图像总像素数的百分比为θ1,背景为θ2 =1- θ1
设分割阈值为T,前景像素被错分为背景的概率为
E 1 ( T ) = ∫ T ∞ p ( x ) d x E1(T)=\int_T^\infty {p(x)dx} E1(T)=∫T∞p(x)dx
背景像素被错分为前景的概率为:
E 2 ( T ) = ∫ − ∞ T q ( x ) d x E2(T)=\int_{-\infty}^T {q(x)dx} E2(T)=∫−∞Tq(x)dx
阈值T造成的错误分割概率为:
E ( T ) = θ 1 E 1 ( T ) + θ 2 E 2 ( T ) E(T) = θ1E1(T)+θ2E2(T) E(T)=θ1E1(T)+θ2E2(T)
即
E ( T ) = θ 1 ∫ T ∞ p ( x ) d x + θ 2 ∫ − ∞ T q ( x ) d x E(T)=θ1\int_T^\infty {p(x)dx}+θ2\int_{-\infty}^T {q(x)dx} E(T)=θ1∫T∞p(x)dx+θ2∫−∞Tq(x)dx
E(T)取得最小值时,其导数为0。
E ( T ) = θ 1 ∫ T ∞ p ( x ) d x + θ 2 ∫ − ∞ T q ( x ) d x E(T)=θ1\int_T^\infty {p(x)dx}+θ2\int_{-\infty}^T {q(x)dx} E(T)=θ1∫T∞p(x)dx+θ2∫−∞Tq(x)dx
θ 1 p ( T ) − θ 2 q ( T ) = 0 θ1p(T)-θ2q(T)=0 θ1p(T)−θ2q(T)=0
σ E σ T = θ 1 p ( T ) = θ 2 q ( T ) \frac{
{\sigma}E}{
{\sigma}T} =θ1p(T)=θ2q(T) σTσE=θ1p(T)=θ2q(T)
假设图像中前景和背景像素灰度都呈正态分布,均值和
方差分别为 μ1, σ 1 2 {\sigma_{1}}^2 σ12,μ2, σ 2 2 {\sigma_{2}}^2 σ22,所以有:
θ 2 ( μ 2 − T ) 2 2 σ 2 2 = θ 1 ( μ 1 − T ) 2 2 σ 1 2 {θ}_{2}{\frac{(\mu_{2}-{}T)^{2}}{2{\sigma}_{2}^{2}}}={θ}_{1}{\frac{(\mu_{1}-{}T)^{2}}{2{\sigma}_{1}^{2}}} θ22σ22(μ2−T)2=θ12σ12(μ1−T)2
为了便于计算,假设:
σ 1 2 = σ 2 2 = σ 2 {\sigma}_{1}^{2}={\sigma}_{2}^{2}={\sigma}^{2} σ12=σ22=σ2
θ 2 = θ 2 = 1 2 {θ}_{2}={θ}_{2}=\frac{1}{2} θ2=θ2=21
最佳阈值公式:
θ 2 ( μ 2 − T ) 2 2 σ 2 2 = θ 1 ( μ 1 − T ) 2 2 σ 1 2 {θ}_{2}{\frac{(\mu_{2}-{}T)^{2}}{2{\sigma}_{2}^{2}}}={θ}_{1}{\frac{(\mu_{1}-{}T)^{2}}{2{\sigma}_{1}^{2}}} θ22σ22(μ2−T)2=θ12σ12(μ1−T)2
( μ 2 − T ) 2 2 σ 2 2 = ( μ 1 − T ) 2 2 σ 1 2 {\frac{(\mu_{2}-{}T)^{2}}{2{\sigma}_{2}^{2}}}={\frac{(\mu_{1}-{}T)^{2}}{2{\sigma}_{1}^{2}}} 2σ22(μ2−T)2=2σ12(μ1−T)2
T = μ 1 + μ 2 2 T={\frac{\mu_{1}+\mu_{2}}{2}} T=2μ1+μ2
最小误判概率法迭代法实现
- 选择阈值T 的初始估计值。(求图像的最大灰度值A,最小灰度值B,令
(A+B)/2为初始值。) - 用T分割图像,得到两组像素,即分割结果。G1由所有灰度值大于T 的像
素组成,G2由所有灰度值≤T 的像素组成。 - 对区域G1和G2中的所有像素计算平均灰度值μ1和μ2 。
- 计算新的阈值: T = μ 1 + μ 2 2 T={\frac{\mu_{1}+\mu_{2}}{2}} T=2μ1+μ2
- 重复步骤2到4,两次迭代所得的T值之差小于预设值,或者直接定义迭
代次数。