Проблема в том, что когда вы помещаете изображение в ваш массив X
, оно изменяется от int
до float
, а методы масштабирования отличаются от plt.imshow
для целых чисел и чисел с плавающей запятой. Это описано в предупреждающем сообщении, которое вы, вероятно, получили:
Обрезка входных данных до допустимого диапазона для imshow с данными RGB ([0..1] для чисел с плавающей запятой или [0..255] для целых чисел).
Вы можете либо создать экземпляр X
в виде массива int
, либо принудительно X[0]
ввести dtype int
, либо нормализовать изображение в диапазоне от 0 до 1, разделив его на 255:
# Method 1:
X = np.empty((1, *(111, 455), 3), dtype=int)
X[0] = imread(dir_path)
imgplot = plt.imshow(X[0])
plt.show()
# Method 2:
X = np.empty((1, *(111, 455), 3))
X[0] = imread(dir_path)
imgplot = plt.imshow(X[0].astype(int))
plt.show()
# method 3:
imgplot = plt.imshow(X[0]/255)
plt.show()
Следуя одному из этих методов, вы получите: