Holoviews: Как обернуть несколько изображений RGB в набор данных и правильно их отобразить? - PullRequest
0 голосов
/ 10 марта 2020

У меня есть набор данных RGB изображений в виде numpy array формы (n, height, width, 3). Я хочу обернуть данные в hv.Dataset и визуализировать их (с bokeh) так, чтобы:

  • С помощью ползунка можно было выбрать одно из n изображений.
  • Каждое изображение отображается в правильном соотношении сторон и ориентации.

Меня в первую очередь интересует решение без xarray.

1 Ответ

1 голос
/ 11 марта 2020

Нечто подобное должно работать, хотя я думаю, что, возможно, есть более чистый подход, объявляющий hv.Dataset обертку входного массива:

import numpy as np, holoviews as hv
hv.extension('bokeh')

x,y = np.mgrid[-50:51, -100:101] * 0.1

def ms(k):
    r = 0.5*np.sin(np.pi  +k*x**2+y**2)+0.5
    g = 0.5*np.sin(x**2+k*y**2)+0.5
    b = 0.5*np.sin(np.pi/k+x**2+y**2)+0.5
    return np.dstack([r,g,b])

a = np.stack([ms(i) for i in [1,2,3,4]])

hv.HoloMap({i:hv.RGB(a[i-1,:,:,:], bounds=(-1,-0.5,1,0.5)).opts(data_aspect=1) for i in [1,2,3,4]})

enter image description here

...