繁体   English   中英

从超像素段获取box2d

[英]Obtain box2d from superpixels segments

我正在尝试使用SLIC获得超像素并获得图像的语义分割。

img = cv2.imread(img_name)
segments = slic(image, n_segments = numSegments, sigma = 3,convert2lab=True,max_iter=25)

如何获得每个细分的box2d? 如果有细分的分层树,该如何获取?

我没有阅读原始论文,但是根据文档,它没有返回层次结构。

我假设您的意思是边界框,因此使用Regionprops的skimage 示例为SLIC返回的每个超像素获取边界框。

结果: 在此处输入图片说明

码:

from skimage.segmentation import slic
from skimage.data import astronaut

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches

from skimage.measure import label
from skimage.measure import regionprops
from skimage.color import label2rgb

img = astronaut()
segments = slic(img, n_segments=50, compactness = 100)

image_label_overlay = label2rgb(segments, image=img)

fig, ax = plt.subplots(ncols=1, nrows=1, figsize=(6, 6))
ax.imshow(image_label_overlay)

for region in regionprops(segments):

    minr, minc, maxr, maxc = region.bbox
    rect = mpatches.Rectangle((minc, minr), maxc - minc, maxr - minr,
                              fill=False, edgecolor='red', linewidth=2)
    ax.add_patch(rect)

plt.show()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM