首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >skimage中的Slic分割

skimage中的Slic分割
EN

Stack Overflow用户
提问于 2019-02-04 02:25:21
回答 1查看 993关注 0票数 0

我正在使用skimage库来定义图形节点和边,它们将描述某些图像。在应用算法和绘制分割区域后,我意识到其中一个区域没有标记。我的目标是标记所有区域并找出每个区域的所有邻居,但我一直在尝试回答这个问题。如果有任何有用的信息,我将不胜感激。

代码语言:javascript
复制
import imageio
import numpy as np
import matplotlib.image as mpimg
import matplotlib.pyplot as plt
from skimage.measure import regionprops
from skimage.segmentation import slic
from skimage.segmentation import mark_boundaries

def rgb2gray(rgb):
    return np.dot(rgb[..., :3], [0.2126, 0.7152, 0.0722])

image = imageio.imread(img_file_path)
segments_slic = slic(image, n_segments=250, compactness=100)
regions = regionprops(segments_slic, intensity_image=rgb2gray(image))
for props in regions:
    cy, cx = props.centroid
    plt.plot(cx, cy, 'ro')

plt.imshow(mark_boundaries(image, segments_slic))
plt.show()

Original image Labeled image

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-05 08:04:13

这是一个不幸的历史意外: SLIC返回从0开始的片段,但regionprops (和大多数其他函数)将0作为背景。要修复您的代码,请在SLIC的输出中添加1:

代码语言:javascript
复制
segments_slic = 1 + slic(image, n_segments=250, compactness=100)

然后,您将获得预期的输出,并正确检测到左上角的片段(以前为0,现在为1):

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54506079

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档