該方法針對顯示Dataloader讀取的圖像。
PIL 與plt中對應操作不同,但原理是一樣的,我試過用下方代碼Image的方法在plt上show失敗了,原因暫且不知。
# 方法1:Image.show()
# transforms.ToPILImage()中有一句
# npimg = np.transpose(pic.numpy(), (1, 2, 0))
# 因此pic只能是3-D Tensor,所以要用image[0]消去batch那一維
img = transforms.ToPILImage(image[0])
img.show()
# 方法2:plt.imshow(ndarray)
img = image[0] # plt.imshow()只能接受3-D Tensor,所以也要用image[0]消去batch那一維
img = img.numpy() # FloatTensor轉爲ndarray
img = np.transpose(img, (1,2,0)) # 把channel那一維放到最後
# 顯示圖片
plt.imshow(img)
plt.show()
cnt += 1