График смежности регионов Skimage (RAG) по сегментации быстрых сдвигов

Я пытаюсь создать график смежности регионов после сегментирования изображения с помощью инструментов в Skimage пакет. Используя примеры в документации, я могу сегментировать изображение с помощью SLIC и успешно создать RAG.

from skimage import data
from skimage import segmentation
from skimage.future import graph
import matplotlib.pyplot as plt

#Load Image
img = data.coffee()

#Segment image
labels = segmentation.slic(img, compactness=30, n_segments=800)
#Create RAG
g = graph.rag_mean_color(img, labels)
#Draw RAG
gplt = graph.draw_rag(labels, g, img)
plt.imshow(gplt)

Успешная тряпка

Однако, если я использую либо segmentation.quickshift или же segmentation.felzenszwalb чтобы сегментировать изображение, а затем создать тряпку, я получаю ошибку в draw_rag(),

labels = segmentation.quickshift(img, kernel_size=5, max_dist=5, ratio=0.5)
g = graph.rag_mean_color(img, labels)
gplt = graph.draw_rag(labels, g, img)

labels = segmentation.felzenszwalb(img, scale=100, sigma=0.5, min_size=50)
g = graph.rag_mean_color(img, labels)
gplt = graph.draw_rag(labels, g, img)
Traceback (most recent call last):
  File "C:\Anaconda\lib\site-packages\IPython\core\interactiveshell.py", line 3032, in run_code
    exec(code_obj, self.user_global_ns, self.user_ns)
  File "<ipython-input-34-c0784622a6c7>", line 1, in <module>
    gplt = graph.draw_rag(labels, g, img)
  File "C:\Anaconda\lib\site-packages\skimage\future\graph\rag.py", line 429, in draw_rag
    out[circle] = node_color
IndexError: index 600 is out of bounds for axis 1 with size 600

Документация предполагает, что методы RAG должны быть совместимы с сегментами любого из этих методов, поэтому я не уверен, что я делаю что-то не так, есть ошибка или RAG можно использовать только с методом сегментации SLIC. Какие-либо предложения?

1 ответ

Решение

Кажется, это было проблемой в Skimage 0.11.2 но исправлено в версии 0.12.3,

Другие вопросы по тегам