Реконструкция и отображение изображения из его суперпиксельного представления
Я хотел бы восстановить и отобразить изображение из его суперпиксельного представления.
Давайте проиллюстрируем это на простом примере:
У меня есть (224,224,3) изображение. Я применяю на нем суперпиксельный алгоритм SLIC для получения суперпикселей.
Вот мой код:
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
def sp_idx(s, index=True):
u = np.unique(s)
return [np.where(s == i) for i in u]
image_index=[] # store the index of pixels affected to each superpixel
image_superpixels=[] # store the RGB pixel values of the pixels of all superpixels
img = skimageIO.imread(image_1)
segments_slic = slic(img, n_segments=1000, compactness=0.01, sigma=1)
superpixel_list = sp_idx(segments_slic)# get pixel and superpixel index
image_index.append(superpixel_list)
superpixel = [img[idx] for idx in superpixel_list]
superpixel = np.asarray(superpixel)
image_superpixels.append(superpixel)
Теперь даны суперпиксели изображения:
Как можно отобразить изображение в суперпиксельном формате?
Я хотел бы получить что-то вроде следующего:
`plt.imshow(image_1)` and `plt.imshow(image_superpixels)`
показать то же самое (по крайней мере, визуально сопоставимые)