在skimage中使用简单线性迭代聚类生成的分割边界没有很好地定义吗?

问题描述 投票:2回答:1

我正在使用skimage slic聚类算法来分割生物医学图像(整个幻灯片图像)。当我用段边界绘制图像时,我发现边界没有很好地定义。下面是我的代码和相应的图像。当我使用分辨率更高的图像时,我仍然遇到相同的问题。这是因为聚类算法找不到明确定义的细分吗?有没有一种方法可以获取明确定义的边界?

from skimage.segmentation import slic
from skimage.segmentation import mark_boundaries
import matplotlib.pyplot as plt
import cv2

image = cv2.imread('testPatch2.png')
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

segments = slic(image, n_segments=500, sigma=5, enforce_connectivity=True, convert2lab=True)

plt.figure(figsize=(10,10))
plt.imshow(mark_boundaries(image, segments, mode='thick'))
plt.show()

enter image description here

python computer-vision cluster-analysis image-segmentation scikit-image
1个回答
0
投票

这不是分割问题,而是显示问题。默认情况下,Matplotlib将对输出图像进行粗采样。有关更多详细信息,请参见this question,其中链接的内容以及答案。您可以通过其他方式解决此问题:

  1. 例如,通过将dpi=300传递给plt.figure()呼叫来设置较高的DPI(每英寸点数)。>
  2. 使用skimage.io.imsave保存由mark_boundaries返回的图像,然后使用标准图像查看器将其打开。
© www.soinside.com 2019 - 2024. All rights reserved.