手写数字识别系统之图像分割

  局部阈值法

  它是把原始图像分为几个小的子图像,再对每个子图像求出最佳阈值。因此效果较好,但开销较大,且局部大小不太好确定,太小容易失真,太大效果不显著。

  动态阈值法

  它的阈值求取方法不仅取决于该像素的灰度值及其领域内像素灰度值, 而且还与像素的坐标位置有关, 这种方法灵活性大, 但是复杂度高, 计算量和时间开销都比较大。

  而冈萨雷斯写的那本书 数字图像处理 里面,给出了一种最小误差阈值,通过利用共轭梯度法对灰度直方图进行双峰的高斯密度曲线进行拟合,求取最佳阈值,效果相当好,但是计算太大,而且对于双峰不显著的图像比较难处理,还需进行附加的单峰检测,并进行插值处理,由于过于复杂且实现也相当困难。

物联网

  split_2

  而本文采用具有自适应性的OTSU局部阈值法来分割图像,并对OTSU和局部阈值法进行了改进,不仅提高了性能而且改善了分割效果,对于亮度不均匀的图像也能实现较好的分割。

  最大类间方差法(OTSU)

  由Otsu于1978年提出的最大类间方差法以其计算简单、稳定有效,一直广为使用。其主要思想就是选取阈值使其类内方差最小化或类间方差最大化。Otsu算法不仅计算简单,而且能够应用于多阈值确定,因此可以说是一种相当好的阈值选取方法。

  我们通常采用最大化类间方差,来实现阈值分割,其类间方差定义为:

  otsu_1

  其中

  || u || 图像中总的灰度均值 ||

  || u1 || 图像中小于阈值T的像素灰度均值 ||

  || u2 || 图像中大于阈值T的像素灰度均值 ||

  || n1 || 图像中小于阈值T的像素数 ||

  || n2 || 图像中大于阈值T的像素数 ||

  因此,只需通过遍历256个灰度级,寻找使其类间方差最大的那个灰度值就是最佳阈值T。

  OTSU的实现与改进

  然而如果每次遍历都需要重新计算阈值两边的均值与像素数的话计算量是相当大的,如果能够在下次遍历时利用上次计算的结果,那么计算量可以大大减少。

  假设灰度直方图为,图像总均值为,图像总像素数为,那么其递推方式如下:

物联网

  otsu_2

  为了进一步简化计算,我们可以通过用

物联网

  otsu_3

  来替换,得到

物联网

  otsu_4

  由于n在递归中不变可以省略,因此可以改为

  otsu_5

  由于本文是针对字符图像的分割,由于字符的笔画通常较细,通常只占图像的1/4都不到,因此可以适当的调整阈值,以实现较好的分割效果,改进后的阈值为

物联网

  otsu_6

  局部阈值的实现与改进

  然而在实际图像中, 由于噪声或其他干扰等因素的影响,OTSU阈值分割并不能使图像分割得到满意的结果, 往往会产生严重的分割错误。这是因为图像的灰度直方图分布不一定

  出现明显的峰和谷, 像素灰度值仅仅反映了像素灰度级的幅值大小, 并没有反映出像素与邻域的空间相关信息。

  通过具体的实验发现:

  当图像亮度分布不均匀时,往往无法得到好的分割效果,通常会出现大块的黑块,或者过渡分割而丢失信息的情况。

  因此,可以通过对图像进行分块,针对每一小块进行OTSU分割,可以减少这些情况的发生,但是这又会出现不希望的“棋盘”效果,为了避免这种情况的发生,可以采用如下改进的局部阈值算法: