有人用otsu算法 ,做过阈值分割不?这样对环境要求是不是能降低?
-
opencv程序能不能移植到mv上面来呢?
https://blog.csdn.net/timidsmile/article/details/8493468
otsu法(最大类间方差法,有时也称之为大津算法)使用的是聚类的思想,把图像的灰度数按灰度级分成2个部分,使得两个部分之间的灰度值差异最大,每个部分之间的灰度差异最小,通过方差的计算来寻找一个合适的灰度级别 来划分。 所以 可以在二值化的时候 采用otsu算法来自动选取阈值进行二值化。otsu算法被认为是图像分割中阈值选取的最佳算法,计算简单,不受图像亮度和对比度的影响。因此,使类间方差最大的分割意味着错分概率最小。链接文本
-
理论上,可以很容易的用python做到:
- 首先获得图像直方图
https://docs.singtown.com/micropython/zh/latest/openmvcam/library/omv.image.html#histogram - 然后计算出阈值。otsu看上去应该要按照你的步骤写一下算法。
但是看上去,这个自动计算的阈值,并不一定是你目标的颜色。如果目标颜色不在图像中,也会分割。
- 首先获得图像直方图
-
-
OpenMV有现成的otsu算法函数来获取最佳阈值,可以直接调用,见上面的文档。
histogram.get_threhsold()
使用Otsu’s 方法计算最佳阈值,将直方图分的每个通道为两半。 该方法返回一个 image.threshold 对象。 这个方法对确定最佳的 image.binary() 阈值特别有用。