У меня есть четырехполосные растровые изображения (которые представляют собой 3D-массив), и я хотел бы сегментировать изображение по полосам. Форма этого растра (после преобразования в трехмерный массив): (12200, 7200, 4)
.
Я пытался использовать scikit-image:
skimage.segmentation.slic(image[, …])
и
skimage.segmentation.quickshift(image[, …])
и в результате получается только двумерный массив (= 1 растр полосы), имеющий форму (12200, 7200).
Команда, казалось, выровняла изображение, и я не могу найти ничего в их документации по этому вопросу.
Вот что я пробовал:
from __future__ import print_function
from osgeo import gdal
import numpy as np
from skimage import io
from skimage.segmentation import felzenszwalb, slic, quickshift
from skimage.segmentation import mark_boundaries
from skimage.util import img_as_float
# The input 4-band TSX image
image = r'raw_img/09K0153_20140501T084638_TSX.tif'
#convert image to Np array
img = io.imread(image, as_gray=False, plugin="gdal")
# Run the quick shift segmentation
segments = quickshift(img, kernel_size=3, convert2lab=False, max_dist=6, ratio=0.5)
Как мне получить результат трехмерной сегментации (что означает: ввод: трехмерный массив, вывод: трехмерный массив), используя Scikit-изображение вместо 2D? Или есть другая библиотека, которую я могу использовать для этой цели?