我可以使用分段任意模型并可视化其结果,但它们看起来与在线演示不同。
我的结果看起来像这样:
以下是该细分市场官方网站的结果:
我需要类似物体周围边缘的东西,就像官方网站一样,但我找不到任何可以完成工作的方法或实用程序。我确信我一定错过了一些东西。
我使用他们官方笔记本中的以下代码来显示注释:
def show_anns(anns):
if len(anns) == 0:
return
sorted_anns = sorted(anns, key=(lambda x: x['area']), reverse=True)
ax = plt.gca()
ax.set_autoscale_on(False)
polygons = []
color = []
for ann in sorted_anns:
m = ann['segmentation']
img = np.ones((m.shape[0], m.shape[1], 3))
color_mask = np.random.random((1, 3)).tolist()[0]
for i in range(3):
img[:,:,i] = color_mask[i]
ax.imshow(np.dstack((img, m*0.35)))
有谁知道如何解决这个问题吗?
我认为你可以尝试找到每个掩模的边界或轮廓,如下所示:
from skimage import segmentation
import matplotlib.pyplot as plt
import numpy as np
def show_anns(anns):
if len(anns) == 0:
return
sorted_anns = sorted(anns, key=(lambda x: x['area']), reverse=True)
ax = plt.gca()
ax.set_autoscale_on(False)
img = np.ones((sorted_anns[0]['segmentation'].shape[0], sorted_anns[0]['segmentation'].shape[1], 4))
img[:,:,3] = 0
for ann in sorted_anns:
m = ann['segmentation']
color_mask = np.concatenate([np.random.random(3), [0.35]])
r, c = np.where(segmentation.find_boundaries(m, connectivity=2, mode="outer"))
img[r, c] = np.array([0, 0, 1, 1])
img[m] = color_mask
ax.imshow(img)