import matplotlib
import numpy as np
photo=plt.imread('Feynman.png')
plt.figure
plt.subplot(121)
plt.imshow(photo)
photo*=255
plt.subplot(122)
plt.imshow(photo)
Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).
and only displays an image in the first subplotphoto*=255
is still an array of floats.
photo = photo.astype(int)
after photo*=255
.X
in .imshow
should be int
type when the array is 0-255: (M, N, 3): an image with RGB values (0-1 float or 0-255 int)photo = plt.imread('Feynman.png')
fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(8, 5))
print(photo[0][0])
ax1.imshow(photo)
photo*=255
print(photo[0][0])
photo = photo.astype(int)
print(photo[0][0])
ax2.imshow(photo)
[output]:
[0.16470589 0.16470589 0.16470589]
[42. 42. 42.]
[42 42 42]