Python 图像分割中未标记像素的清除

Python 图像分割中未标记像素的清除,python,opencv,scikit-learn,image-segmentation,scikit-image,Python,Opencv,Scikit Learn,Image Segmentation,Scikit Image,我的图像分割结果如下所示: 正如您所看到的,分割图中有一些小间隙。这些间隙像素已被分配值0;所有其他非间隙像素已指定非0类值 是否有一种方法,也许在skimage中的某个地方,可以对空像素执行类似于k-最近插值的操作,以便为它们分配与其邻域一致的值?我试着自己编写这个函数,但速度太慢了。您可以使用opencv的形态学关闭操作。(参考:) 我尝试对您的图像执行相同的操作: import cv2 import numpy as np import matplotlib.pyplot as plt

我的图像分割结果如下所示:

正如您所看到的,分割图中有一些小间隙。这些间隙像素已被分配值0;所有其他非间隙像素已指定非0类值


是否有一种方法,也许在
skimage
中的某个地方,可以对空像素执行类似于k-最近插值的操作,以便为它们分配与其邻域一致的值?我试着自己编写这个函数,但速度太慢了。

您可以使用opencv的形态学关闭操作。(参考:)

我尝试对您的图像执行相同的操作:

import cv2
import numpy as np
import matplotlib.pyplot as plt

img = plt.imread('image path')
plt.imshow(img)


您可以使用内核大小和迭代次数。对于较小的图像,可以找到3或5的内核大小。您可以增加迭代次数来关闭较大的孔。

您可以使用opencv的形态学关闭操作。(参考:)

我尝试对您的图像执行相同的操作:

import cv2
import numpy as np
import matplotlib.pyplot as plt

img = plt.imread('image path')
plt.imshow(img)


您可以使用内核大小和迭代次数。对于较小的图像,可以找到3或5的内核大小。你可以增加迭代次数来闭合更大的孔。

形态学闭合非常好,但可以修改对象的形状,它会在边缘添加一些人工制品。
对于您的问题,我认为您应该使用findContour,然后使用fillpoly来删除孔。

形态学闭合非常好,但可以修改对象的形状,它会在边缘添加一些伪影。
对于您的问题,我认为您应该使用findContour,然后使用fillpoly来删除孔。

您是否可以提供图像本身,而不是图像打印的屏幕截图,这有点像复印件的复印件……您可以使用Python Wand(使用Imagemagick)处理连接的组件将小区域合并到其周围区域。请参见“道歉”中“已连接组件”下的“区域阈值”。我最近开始使用JupyterLab,他们下载输出图像()的方式相当非直观。您能提供图像本身,而不是像复印件的复印件一样的图像绘图截图吗?您可以用Python Wand(使用Imagemagick)处理连接的组件将小区域合并到其周围区域。请参见“道歉”中“已连接组件”下的“区域阈值”。我最近开始使用JupyterLab,他们下载输出图像()的方式非常不直观。