根据刘博记录如何提取标记内的mask,中间是自己的理解过程,可删除精简。
import numpy as np
import matplotlib.pyplot as plt
import skimage.io as io
import scipy
def marker_color(color='yellow'):
return [255, 242, 0]
img = io.imread('./8_2.png')[...,0:3]
mask1 = np.all(np.array([255, 242, 0]) - 40 < img, axis=-1)
plt.imshow(mask1)
plt.show()
mask2 = np.all(np.array([255, 242, 0]) + 40 > img, axis=-1)
plt.imshow(mask2)
plt.show()
mask = np.logical_and(mask1, mask2)
plt.imshow(mask)
plt.show()
mask = scipy.ndimage.binary_fill_holes(mask)
plt.imshow(mask)
plt.show()
fig,axes = plt.subplots(1,2,figsize=(10,5))
axes[0].imshow(img)
axes[1].imshow(mask, cmap='gray')
plt.show()
io.imsave('tmp.png', mask*255)