簡體   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