如何将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)

  • 问题是 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]