Otsu的方法执行二进制图像阈值处理,包括最大化通过在给定阈值处分割图像而创建的两个子类(前景/背景)之间的方差。在数学上,这表示为:
variance12 = weight1 * (mean1 - meanT)**2 + weight2 * (mean2 - meanT)**2
(meanT是图像直方图的总体平均值)。但是,我无法理解如何在threshold_otsu
中的scikit-image
函数中实现这一点,该函数将其写为:
variance12 = weight1 * weight2 * (mean1 - mean2)**2
。
虽然权重和均值的定义在这个函数中略有不同,但我看不出这两个公式是如何相同的 - 即使它们给出了相同的答案。有人会关心澄清吗?
感谢您的帮助。
答案 0 :(得分:2)
通过使用权重和平均值T的定义,您可以证明这两种配方是相同的。
meanT = weight1*mean1 + weight2*mean2 (1)
weight1 + weight2 = 1 (2)
如果您在第一个公式中插入(1),最终会得到类似这样的内容
[(mean1-mean2)**2]*[weight1*weight2**2] + [(mean1-mean2)**2]*[weight2*weight1**2]
如果您考虑并使用(2),您将获得结果。
完整的证明如下,可以在Otsu's original paper here中查看定义。