我正试图填写下图中的漏洞。
当我使用SciPy的binary_fill_holes()时,我通常会成功,除了触摸图像边框的对象。
是否有任何现有的Python函数可以填充触摸边框的对象中的漏洞?我尝试在图像周围添加白色边框,但这只会导致整个图像被填充。
答案 0 :(得分:5)
这假设背景比其他东西多。它基本上对图像进行连通分量分析。提取最大的组件(假设为背景),并将其他所有组件设置为白色。
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()