0

Я сегментировал свое изображение, используя метод quickshift, найденный в изображении scikit. Как рассчитать средний цвет и область суперпикселя? Как я могу интерпретировать возвращаемое значение метода quickshift()? В документации говорится, что возвращаемое значение - «Целочисленная маска, обозначающая метки сегментов», но это не ясно для меня. Как я могу сделать логический массив в форме исходного изображения, заполненного теми, где присутствует конкретный суперпиксель, в этой презентации моя жизнь будет проще (я работал с такими масками в OpenCV). ты можешь помочь мне с этим? Мой код (упрощенный пример с сайта scikit-изображения):Как рассчитать средний цвет суперпикселя в scikit-image

from skimage.data import astronaut 
from skimage.segmentation import felzenszwalb, slic, quickshift 
from skimage.segmentation import mark_boundaries 
from skimage.util import img_as_float 

img = img_as_float(astronaut()[::2, ::2]) 
segments_quick = quickshift(img, kernel_size=3, max_dist=6, ratio=0.5) 

print("Quickshift number of segments: %d" % len(np.unique(segments_quick))) 
plt.imshow(mark_boundaries(img, segments_quick)) 

plt.show() 

ответ

3

skimage.measure.regionprops функция возвращает свойства помеченных областей, в том числе те, которые вы заинтересованы в: средний и области. Вы можете использовать его следующим образом:

from skimage import measure 
regions = measure.regionprops(segments_quick, intensity_image=img) 

regions список, с каждой записью объект RegionProperty, представляющий superpixel. Вы можете запросить свойства области следующим образом:

print([r.area for r in regions]) 
print([r.mean_intensity for r in regions]) 

 Смежные вопросы

  • Нет связанных вопросов^_^