填补触及图像边界的物体孔洞
我正在尝试填补下面这张图片中的空洞。
我使用SciPy的binary_fill_holes()函数时,通常能成功填补空洞,但有一个例外,就是那些与图片边缘接触的物体。
有没有现成的Python函数可以填补与边缘接触的物体的空洞?我试着在图片周围加了一个白色边框,但结果是整个图片都被填满了。
1 个回答
8
这段话的意思是,假设图片中背景部分比其他部分要多。它实际上是在对图片进行一种叫做“连通区域分析”的处理。这个过程会找出最大的区域(我们假设这个区域是背景),然后把其他的部分都变成白色。
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()