使用plt.imshow()打开图像为空白的问题

问题描述:

当我想使用matplotlib.pyplotplt中的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()

猜你喜欢

转载自blog.csdn.net/yyhhlancelot/article/details/82688246