解决Clipping input data to the valid range for imshow with RGB data([0..1] ...)

解决 Clipping input data to the valid range for imshow with RGB data [0..1] for floats or [0..255] for integers

  • 1. 问题描述
  • 2. 解决方法

1. 问题描述

在使用 python 显示 npz 文件中的图片时,使用如下代码:

import numpy as np
import matplotlib.pyplot as plt

path = "dataset_dog-fish_train-900_test-300.npz"
data = np.load(path)
img_data = data['X_train']
plt.imshow(img_data[301])
plt.show()

出现了下面这个问题
在这里插入图片描述
这是因为img_data[301]数组中的数字取值范围要求是[0,1],实际上取值是[-1,1],所以有如下解决方式。

2. 解决方法

将以上代码改为

import numpy as np
import matplotlib.pyplot as plt

path1 = "dataset_dog-fish_train-900_test-300.npz"
data1 = np.load(path1)
img_data1 = data1['X_train']
print(data1.files)
print((img_data1[301]+1.0)/2.0)
plt.imshow((img_data1[301]+1.0)/2.0)
plt.show()

修改之前图片效果:
解决Clipping input data to the valid range for imshow with RGB data([0..1] ...)_第1张图片
修改之后图片效果:
解决Clipping input data to the valid range for imshow with RGB data([0..1] ...)_第2张图片

你可能感兴趣的:(Python,python)