holoviews 不显示 PIL 图像格式
holoviews doesn't display PIL image format
我正在尝试导入 MNIST 数据集并使用 Holoviews 显示它。当我 运行 以下内容时:
import holoviews as hv
from torchvision import datasets, transforms
hv.extension('bokeh')
mnist_images = datasets.MNIST('data', train=True, download=True)
image_list = []
for k, (image, label) in enumerate(mnist_images):
if k >= 18:
break
image.show()
bounds = (0,0,1,1)
temp = hv.Image(image, bounds=bounds)
image_list.append(temp)
layout = hv.Layout(image_list).cols(2)
layout
我在 'temp = hv.Image(...)' 行出现以下错误:
holoviews.core.data.interface.DataError: None of the available storage backends were able to support the supplied data format.
'image' 变量是以下对象:
并且 image.show()
正确呈现图像。另外,如果我使用 matplotlib 的 .imshow()
,我可以获得正确的渲染。
我想要的是查看在 Holoviews 中呈现的图像,我希望 Holoviews.Image() 能够做到这一点。这不是一个正确的假设吗?如果是,那么 code/approach 有什么问题?
HoloViews 使用数字数组而不是图像,因此 hv.Image
用于从二维数组构建图像,而不是用于显示已经是图像的东西。但是您可以从 PIL 对象中获取数值数组,例如hv.RGB(np.array(image), bounds=bounds)
将其显示为 RGB 图像或类似的东西,仅提取灰度值以传递给 hv.Image
。
我正在尝试导入 MNIST 数据集并使用 Holoviews 显示它。当我 运行 以下内容时:
import holoviews as hv
from torchvision import datasets, transforms
hv.extension('bokeh')
mnist_images = datasets.MNIST('data', train=True, download=True)
image_list = []
for k, (image, label) in enumerate(mnist_images):
if k >= 18:
break
image.show()
bounds = (0,0,1,1)
temp = hv.Image(image, bounds=bounds)
image_list.append(temp)
layout = hv.Layout(image_list).cols(2)
layout
我在 'temp = hv.Image(...)' 行出现以下错误:
holoviews.core.data.interface.DataError: None of the available storage backends were able to support the supplied data format.
'image' 变量是以下对象:image.show()
正确呈现图像。另外,如果我使用 matplotlib 的 .imshow()
,我可以获得正确的渲染。
我想要的是查看在 Holoviews 中呈现的图像,我希望 Holoviews.Image() 能够做到这一点。这不是一个正确的假设吗?如果是,那么 code/approach 有什么问题?
HoloViews 使用数字数组而不是图像,因此 hv.Image
用于从二维数组构建图像,而不是用于显示已经是图像的东西。但是您可以从 PIL 对象中获取数值数组,例如hv.RGB(np.array(image), bounds=bounds)
将其显示为 RGB 图像或类似的东西,仅提取灰度值以传递给 hv.Image
。