我正在尝试计算此图像中的墨滴数量以及这些墨滴所覆盖区域的覆盖率.
我试图将这个图像转换为黑白图像,但这些图像的中心颜色看起来与背景太相似了.所以我只得到第二张图片.
有没有办法解决这个问题或任何更好的想法?
非常感谢.
解决方法:
您可以使用scipy.ndimage.binary_fill_holes填充二进制图像的孔.我还建议使用自动阈值处理方法,如Otsu(可用于scikit-image).
from skimage import io, filters
from scipy import ndimage
import matplotlib.pyplot as plt
im = io.imread('ba3g0.jpg', as_grey=True)
val = filters.threshold_otsu(im)
drops = ndimage.binary_fill_holes(im < val)
plt.imshow(drops, cmap='gray')
plt.show()
对于丢弃的数量,您可以使用scikit-image的另一个功能
from skimage import measure
labels = measure.label(drops)
print(labels.max())
并为覆盖范围
print('coverage is %f' %(drops.mean()))
标签:python,image-processing
来源: https://codeday.me/bug/20190930/1837155.html