Pytorch視覺化(顯示圖片)及格式轉換
讀取RGB檔案:
- matplotlib
import matplotlib.image as mpimg # mpimg 用於讀取圖片
lena = mpimg.imread('lena.png')
- cv2
import cv2
# cv2.imread()介面讀影像,讀進來直接是BGR 格式資料格式在 0~255,通道格式為(W,H,C)
img_BGR = cv2.imread('D:/Desktop/lena.jpg')
rgb = cv2.cvtColor(rgb, cv2.COLOR_BGR2RGB) #轉成RGB
rgb = np.transpose(rgb, [2, 0, 1]) # 進行tensor操作時需要將維度放到前面
讀取HSI檔案:
- scipy
from scipy.io import loadmat
filenames_hyper = glob.glob(os.path.join(opt.data_path, 'NTIRE2020_Train_Spectral', '*.mat'))
for k in range(len(filenames_hyper)):
mat = loadmat(filenames_hyper[k])
hyper = np.float32(np.array(mat['cube']))
- h5py(有時候會出問題)
import h5py
filenames_hyper = glob.glob(os.path.join(opt.data_path, 'NTIRE2020_Train_Spectral', '*.mat'))
for k in range(len(filenames_hyper)):
mat = h5py.File(filenames_hyper[k], 'r')
在顯示圖片之前需要注意的幾個問題:
- 矩陣的shape:
一般情況下是[ 行數, 列數, 維數 ](如[ 482, 512, 3 ]),這樣顯示出來會感覺不自然,但確實就是這樣,RGB檔案讀入時一般也是這樣。使用ToPILImage函式時要注意,詳見Pytorch顯示一個Tensor型別的圖片資料; - 資料型別是0-1的float型,還是0-255的int型或者uint8型:
只要是浮點數,就會預設是0-1範圍內。
只要是整形,就會預設取值範圍是2-255。
下面會介紹Tensor和numpy如何進行資料型別的轉換; - 注意要操作的矩陣是Tensor型別還是numpy型別。
顯示Tensor/numpy的資料型別:
a = torch.Tensor(1,2,3)
print(a.dtype)
print(a.numpy().dtype)
結果:
- torch.float32
- float32
Tensor進行資料型別的轉換:
a = torch.randn(10, 20, 3)
a = a.long()/half()/int()...
# torch.long() 將tensor投射為long型別
# torch.half()將tensor投射為半精度浮點型別
# torch.int()將該tensor投射為int型別
# torch.double()將該tensor投射為double型別
# torch.float()將該tensor投射為float型別
# torch.char()將該tensor投射為char型別
# torch.byte()將該tensor投射為byte型別
# torch.short()將該tensor投射為short型別
# 好像沒有uint8
Numpy進行資料型別的轉換:
astype()函式
a = np.random.randint(0, 255, 300)
# 在0-255(包括0,不包括255)範圍內產生300個隨機整形,是一個行向量哦!
a = a.reshape(10,10,3)
a = a.astype(np.uint8)
# .float/.int/...
NumPy 支援比 Python 更多種類的數值型別。 下表顯示了 NumPy 中定義的不同標量資料型別。
序號 | 資料型別 | 及描述 |
---|---|---|
1. | bool | 儲存為一個位元組的布林值(真或假) |
2. | int | 預設整數,相當於 C 的long,通常為int32或int64 |
3. | int16 | 16 位整數(-32768 ~ 32767) |
4. | int32 | 32位整數(-32768 ~ 32767) |
5. | uint8 | 8 位無符號整數(0 ~ 255) |
6. | float16 | 半精度浮點:符號位,5 位指數,10 位尾數 |
6. | float32 | 單精度浮點:符號位,8 位指數,23 位尾數 |
7. | float64 | 雙精度浮點:符號位,11 位指數,52 位尾數 |
顯示圖片:
import numpy as np
a = abs(torch.randn(10,20,3))*100
plt.imshow(a) # 顯示圖片
plt.axis('off') # 不顯示座標軸
plt.show()
# 顯示單通道,也就是熱力圖,也就是說可以用它來顯示HSI.mat檔案
plt.imshow(a[:,:,0])
plt.imshow(a[:,:,0], cmap='Greys_r') #顯示單通道黑白圖
相關文章
- 圖片格式轉換,JPG圖片轉換成PDF
- 視訊音樂圖片格式轉換Permute 3
- pytorch模型結構視覺化,可顯示每層的尺寸PyTorch模型視覺化
- 圖片格式怎麼轉換,如何轉換jpg
- heic圖片轉換格式怎麼轉?
- 怎麼轉換圖片格式並壓縮圖片
- element上傳圖片元件使用方法|圖片回顯|格式轉換base64元件
- C++圖片格式轉換:BMP轉JPEGC++
- linux系統lcd顯示jpg格式圖片Linux
- 教程:怎麼轉換heic格式圖片
- jquery Banner 圖片自動輪換顯示jQuery
- 怎麼將bmp格式圖片轉換jpg格式的
- 圖片格式轉換器有什麼,怎麼無損轉換heic格式
- 如何將heic格式轉換成jpg圖片?
- 雨滴式的顯示圖片 (cloud 轉貼) (轉)Cloud
- img圖片無法顯示利用onerror事件顯示替代圖片Error事件
- 前端圖片canvas,file,blob,DataURL等格式轉換前端Canvas
- WidsMob ImageConvert for Mac 圖片格式轉換器Mac
- 怎麼將pdf轉換成jpg圖片格式
- 計算機視覺—圖片幾何變換(2)計算機視覺
- IE10與IMG圖片PNG顯示不了 WP中的WebBrowser中無法檢視PNG格式的圖片IE10Web
- MNIST資料集詳解及視覺化處理(pytorch)視覺化PyTorch
- 載入網路圖片所顯示的轉圈效果及載入成功前與失敗後所顯示的圖示
- Golang pprof 結果使用 graphviz 圖片化顯示Golang
- 開源圖片工具箱(Img Toolbox) 格式轉換 新增水印 圖片壓縮 圖片裁剪 圖片旋轉 圖片縮放
- Matlab批量實現圖片檔案格式轉換Matlab
- React-Quill中的圖片上傳及顯示ReactUI
- Pytorch網路結構視覺化PyTorch視覺化
- 短視訊平臺原始碼,平臺顯示時間,時間格式的轉換原始碼
- JS/HTML格式化顯示JSHTML
- SDWebImage在iOS12上WebP格式圖片不顯示問題WebiOS
- 前端 img標籤顯示 base64格式的 圖片前端
- 分割結果視覺化,把標籤mask輪廓顯示在原圖上視覺化
- Java——圖片滾動顯示Java
- [BUG反饋]LINUX下圖示、圖片及驗證碼顯示不正確Linux
- 批次HEIC格式圖片轉換工具 iMazing HEIC Converter
- Mac下.CR2格式圖片批量轉換Mac
- js圖片 轉換JS