如何使用带有 numpy.load() 的图像 jpg

How to use image jpg with numpy.load()

我尝试使用 colab 实现 this code

x = np.load('data_sample.npy',allow_pickle=True)
stacked_x = np.concatenate([x,x,x],1)
stacked_x.shape

但我的样本是 jpg 格式的图像,所以我无法将这些图像转换为 .npy 以使用它。

实际上,我试过这个代码:

import numpy as np

array = np.asarray('image.JPG')


print(array.tobytes())
print(array)

x = np.load(array,allow_pickle=True)
stacked_x = np.concatenate([x,x,x],1)
stacked_x.shape
print(x)

但我得到了:

当我使用此代码时:

    x = np.load(array.tobytes(),allow_pickle=True)

我得到了:

所以,有什么解决这个问题的建议,准确地将 .jpg 转换为 .npy?

看看你的代码做了什么:

In [57]: np.asarray('image.JPG')
Out[57]: array('image.JPG', dtype='<U9')
In [58]: np.asarray('image.JPG').tobytes()
Out[58]: b'i\x00\x00\x00m\x00\x00\x00a\x00\x00\x00g\x00\x00\x00e\x00\x00\x00.\x00\x00\x00J\x00\x00\x00P\x00\x00\x00G\x00\x00\x00'

那只是在玩弦。它没有对名为“image.JPG”的文件执行任何操作。您需要使用某种 image 处理包来首先加载文件,将其从压缩格式转换为 3d 数组。

np.load 用于加载由 np.save('file.npy') 创建的文件。将 array 变量作为文件名是没有意义的。它不会加载 jpg 文件。

np.load('file.npy',allow_pickle=True)