1、算法原理是,给出一个阈值n,使得图像的每个像素值与n的均方差最小。具体公式实现,如下图所示。其中,艘早祓胂c是图片的直方图数据,u*v是图像的像素数目。我们需要的,正式最后一步那阈值的计算公式,之前的推导在代码中无需考虑。这可以大大的减少运算时间。
2、下面开始用python一步一步实现这一算法。先用opencv读取灰度图,并求出直方图数据。
3、根据Otsu方法,求出阈值n。
4、用n为阈值,对图片进行二值化处理。
5、别忘了保存图片。
6、保存出来的图片如下,大家可以使用opencv内置的Otsu方法加以对比。