1. 程式人生 > >使用plt.imshow()開啟影象為空白的問題

使用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()