如何从图像中删除小的独立蒙版?

时间:2018-10-15 19:59:38

标签: python python-3.x image numpy opencv

我将图像二值化了。黄色= 1个遮罩,紫色= 0个背景:

enter image description here

我可以通过以下方法过滤整个蒙版是否小于某个阈值:

def filter_image(img):
    if img.sum() < 10:
        return np.zeros(img.shape)
    else:
        return img

但是如何摆脱这些小的黄点呢?

2 个答案:

答案 0 :(得分:3)

可以很容易地通过形态转换完成

您可以检查文档here

类似的事情应该起作用:

import cv2
import numpy as np

img = cv2.imread('some_image.png',0)
kernel = np.ones((5,5),np.uint8)
closing = cv2.morphologyEx(img, cv.MORPH_CLOSE, kernel)

您可以使用内核中的值来关闭具有确定大小的孔。

我希望它对您有帮助

答案 1 :(得分:1)

也许您可以使用顺序morphological dilations and erosions来消除这种噪音。

这些操作也称为openclose