关注公众号,获取更多信息
![f32b54753af51e7dfc623da75e83423f.png](https://i-blog.csdnimg.cn/blog_migrate/b8e10b2bc296ebc8c800ab33689e6e82.jpeg)
引言
最近一直在看图像二值化相关的东西,一直想寻找一个好的方法,能够自适应的设定阈值。这个过程中,发现了OTSU算法,其实这也算是基本的图像处理算法,之前有过接触,但是放过了,毕竟没有实际的用过。由于现在面临的大多数问题是光照不够均匀(这一点是很难做到均匀的),大多数还有噪声,那么如何实现良好的区分,这个算法提供了很好的思路。本文不想罗列一大堆公式,只想说说基本的观点。总结前人的,就是为了能够创新,积累积累。。。。。希望与大家共同学习。
大津算法原理
实际上,这种方法跟一些数据降维模式分类中的思想是一样的,例如PCA,LDA,SVM等。
既然这样,那就不得不先提一下概率统计的知识了。(高中其实都学过的)。简单的来描述,对于一组数据T,数据个数为n,其均值为
![a82de5631ddb9e05cd89c7b48ef4e037.png](https://i-blog.csdnimg.cn/blog_migrate/d1ab492813efcb714ce0f5ab236d4837.png)
(以此作为其期望)。那么这组数据离散程度可以用方差来表示:
![7f16ab8fd6c67cfefe001172d536047a.png](https://i-blog.csdnimg.cn/blog_migrate/e5ca51070eb163f2dcd1e8ee2d286c19.png)
如果单个的数据其越偏离于中心,那么,其方差值也就越大。
图像的阈值化处理,就是将图像分为两个部分,高于阈值的部分,和小于阈值的部分。(暂不考虑多阈值的情况)。那么,如果将图像的每一个像素点的强度作为一个数据集合中的单元,那么,阈值化就相当于是一个二分类的问题。
我们假设,大于阈值的类为S1,维度为n1(不考虑秩的问题,实际上就是像素个数),均值为m1;小于阈值的类记为S2,维度为n2,均值为m2。根据前面概率的知识,理想的情况下,对于每一个类,其类内方差应该是很小的。也就是说,
D1<<dt1, D2<<dt2。
当然了,考虑每一个类是可行的。但是,我们又可以换个思路,全局上来考虑呢?
假设整个图像的均值为m,我们假设就只有两个数据,m1,m2,考虑着两个数据的离散程度,同样可以用上面的方差公式。这里看起来有点怪怪的,暂且这样来理解吧。也就是说,方差越大,这两个类也就越离散,分的越开。就像吵架一样,吵得声音越大,说明分歧越大,越严重。
所以,我们求这个阈值时,就希望,在内部是很团结的,就是在阈值分割后,两个类中,每一个类都是很和谐的。但是,相互之间又非常的受不了对方,离的越远越好。那么,找到这样的阈值,就十分开心了。
以上就是本人的一点粗鄙的认识,还有待进一步的学习。如有错误,还望批评指正,不吝指教。其实网上已经有很多这方面的东西了。这里只是结合自己学习的心得,谈谈体会。个人认为,这些知识都是想通的。知识面越广,越容易产生火花。
![4eaa047e44fa7878262fb91af8f29778.png](https://i-blog.csdnimg.cn/blog_migrate/5d908aec978d2e8f9b0652dc71b3a00d.png)