从 .h5 文件加载图像数据,在 Python 3.5 和 h5py 中显示异常颜色
Loading image data from .h5 file showing unusual color in Python 3.5 and h5py
我正在使用 .h5 文件来存储大量图像数据。然后调整图像大小并将它们存储在其中。
正在为图像创建数据集:
t1=hdf5_file.create_dataset("train_img", train_shape, np.int8)
循环图像地址以调整大小并存储它们:
for i in range(len(train_addrs)):
addr = train_addrs[i]
img = cv2.imread(addr)
img = cv2.resize(img, (128, 128), interpolation=cv2.INTER_CUBIC)
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
#save
hdf5_file["train_img"][i, ...] = img[None]
hdf5_file.close()
当我尝试使用以下代码检查图像的外观时:
hdf5_path = 'dataset.hdf5'
train_dataset = h5py.File(hdf5_path, "r")
train_set_x_orig = np.array(train_dataset["train_img"][:])
plt.imshow(train_set_x_orig[5]) #see 5th image
plt.show()
我得到这张不寻常的图像。上一张来自 .h5 文件,下一张是原始图像。我检查了一切的形状,它们都很好。 resize
cv2
中的代码也可以。任何形式的帮助将不胜感激。
我用 scipy.misc
加载 b/w png
In [1354]: arr2 = misc.imread('../Desktop/newworld2.png')
In [1355]: arr2.shape
Out[1355]: (500, 778, 3)
In [1356]: arr2.dtype
Out[1356]: dtype('uint8')
用
保存
In [1343]: d2 =f.create_dataset('newworld set',shape=(2, *arr2.shape), dtype=np.uint8)
In [1344]: d2[0]=arr2
In [1345]: d2[1]=arr2
保留原件
另存为 int8
会产生您显示的那种颜色变化
In [1348]: d3 =f.create_dataset('newworldbad',shape=(2, *arr2.shape), dtype=np.int8)
In [1349]: d3[0]=arr2
In [1350]: d3[0]
白色像素,[255, 255, 255]
变为灰色[127, 127, 127]
,等等
我正在使用 .h5 文件来存储大量图像数据。然后调整图像大小并将它们存储在其中。
正在为图像创建数据集:
t1=hdf5_file.create_dataset("train_img", train_shape, np.int8)
循环图像地址以调整大小并存储它们:
for i in range(len(train_addrs)):
addr = train_addrs[i]
img = cv2.imread(addr)
img = cv2.resize(img, (128, 128), interpolation=cv2.INTER_CUBIC)
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
#save
hdf5_file["train_img"][i, ...] = img[None]
hdf5_file.close()
当我尝试使用以下代码检查图像的外观时:
hdf5_path = 'dataset.hdf5'
train_dataset = h5py.File(hdf5_path, "r")
train_set_x_orig = np.array(train_dataset["train_img"][:])
plt.imshow(train_set_x_orig[5]) #see 5th image
plt.show()
我得到这张不寻常的图像。上一张来自 .h5 文件,下一张是原始图像。我检查了一切的形状,它们都很好。 resize
cv2
中的代码也可以。任何形式的帮助将不胜感激。
我用 scipy.misc
In [1354]: arr2 = misc.imread('../Desktop/newworld2.png')
In [1355]: arr2.shape
Out[1355]: (500, 778, 3)
In [1356]: arr2.dtype
Out[1356]: dtype('uint8')
用
保存In [1343]: d2 =f.create_dataset('newworld set',shape=(2, *arr2.shape), dtype=np.uint8)
In [1344]: d2[0]=arr2
In [1345]: d2[1]=arr2
保留原件
另存为 int8
会产生您显示的那种颜色变化
In [1348]: d3 =f.create_dataset('newworldbad',shape=(2, *arr2.shape), dtype=np.int8)
In [1349]: d3[0]=arr2
In [1350]: d3[0]
白色像素,[255, 255, 255]
变为灰色[127, 127, 127]
,等等