如何将0-1图像浮点数组转换为0-255 int数组
How to convert 0-1 image float array to 0-255 int array
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).
并且只在第一个子图中显示图像
- 使用过的图片
- 问题是
photo*=255
仍然是一个浮点数数组。
- 看照片阵列
- 在
photo*=255
之后添加photo = photo.astype(int)
。
X
in .imshow
数组为0-255时应该是int
类型: (M, N, 3): 一张有RGB值的图像(0-1 浮点数或 0-255 整数)
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]
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).
并且只在第一个子图中显示图像
- 使用过的图片
- 问题是
photo*=255
仍然是一个浮点数数组。- 看照片阵列
- 在
photo*=255
之后添加photo = photo.astype(int)
。 X
in.imshow
数组为0-255时应该是int
类型: (M, N, 3): 一张有RGB值的图像(0-1 浮点数或 0-255 整数)
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]