减少otsu阈值python opencv包含的组件

问题描述

我正在尝试从一组图像中分割蓝色分量。在大多数蓝色分量分布较大的图像中,otsu 阈值图像可以正常工作。但是,对于蓝色成分最少的图像,结果不好,似乎包括不相关的部分。下面的例子:

enter image description here

有没有办法改进 otsu 阈值,以便只分割相关部分而不一定使其他图像受到影响?

我已经尝试过全局和自适应阈值,但 otsu 特别捕捉到了更好的结果,但其中包含了不必要的细节。

代码如下:

l_image = remove_background(image)
l_image = cv2.cvtColor(l_image,cv2.COLOR_BGR2GRAY)

ret1,th1 = cv2.threshold(l_image,255,cv2.THRESH_BINARY+cv2.THRESH_OTSU)

mask = (th1 != 255)
sel = np.ones_like(image)
sel[mask] = image[mask]
sel = cv2.cvtColor(sel,cv2.COLOR_HSV2BGR)

#we simply set these channels to 0 to remove excess background
sel[:,:,1] = 0
sel[:,2] = 0

这是示例图片。

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)