【问题标题】:Filling holes in objects that touch the border of an image填充接触图像边界的对象中的孔
【发布时间】:2014-04-14 03:58:22
【问题描述】:

我正在尝试填补下图中的漏洞。

当我使用 SciPy 的 binary_fill_holes() 时,我通常会成功,但接触图像边框的对象除外。

是否有任何现有的 Python 函数可以填充接触边界的对象中的孔?我尝试在图像周围添加白色边框,但这只会导致整个图像被填充。

【问题讨论】:

  • 如果你画了一个白色的边框,但在黑色区域旁边留下一个洞怎么办?
  • 是的,这也有效!谢谢!

标签: python opencv image-processing scipy image-segmentation


【解决方案1】:

这假设背景比其他内容更多。它基本上对图像进行连通分量分析。提取最大的组件(假设是背景),并将其他所有内容设置为白色。

import numpy as np
import matplotlib.pyplot as plt
import skimage.morphology, skimage.data

img = skimage.data.imread('j1ESv.png', 1)
labels = skimage.morphology.label(img)
labelCount = np.bincount(labels.ravel())
background = np.argmax(labelCount)
img[labels != background] = 255
plt.imshow(img, cmap=plt.cm.gray)
plt.show()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-27
    • 1970-01-01
    • 2012-05-06
    • 2021-03-03
    • 1970-01-01
    相关资源
    最近更新 更多