问题描述:
当我想使用matplotlib.pyplot的plt中的imshow()打开图像时,遇到了打开图像为空白的问题,类似于下图
找了很久才知道这是因为图像的内部数据还是浮点数造成的,解决的方案根据情况有所不同:
第一种情况:为0-255的浮点数
通过使用Numpy的数据转换将其直接转换为整数。
import numpy as np
import matplotlib.pyplot as plt
z # 假设这是之前准备用来画图的张量或矩阵
z_new = z.astype(np.int32)
plt.figure('your title')
plt.imshow(z_new)
plt.show()
第二种情况:为0-1的浮点数(这是因为很多情况下会进行标准化)
添加一句代码就可以啦。
import numpy as np
import matplotlib.pyplot as plt
w # 假设这是之前准备用来画图的张量或矩阵,范围为0-1之间的浮点数
plot_normalizer = matplotlib.colors.Normalize(vmin = 0.0, vmax = 1.0, clip = True)
plt.figure('your title')
plt.imshow(w, norm = plot_normalizer)
plt.show()