Pytorch中transforms.Resize()的簡單使用
transforms.Resize()的簡單使用
簡單來說就是調整PILImage對象的尺寸,註意不能是用io.imread或者cv2.imread讀取的圖片,這兩種方法得到的是ndarray。
將圖片短邊縮放至x,長寬比保持不變:
transforms.Resize(x)
而一般輸入深度網絡的特征圖長寬是相等的,就不能采取等比例縮放的方式瞭,需要同時指定長寬:
transforms.Resize([h, w])
例如:
transforms.Resize([224, 224])就能將輸入圖片轉化成224×224的輸入特征圖。
這樣雖然會改變圖片的長寬比,但是本身並沒有發生裁切,仍可以通過resize方法返回原來的形狀:
from PIL import Image from torchvision import transforms img = Image.open('1.jpg') w, h = img.size resize = transforms.Resize([224,244]) img = resize(img) img.save('2.jpg') resize2 = transforms.Resize([h, w]) img = resize2(img) img.save('3.jpg')
需要註意的一點是PILImage對象size屬性返回的是w, h,而resize的參數順序是h, w。
transforms.Resize([224, 224])解讀
記住圖像尺度統一為224×224時,要用transforms.Resize([224, 224]),不能寫成transforms.Resize(224),transforms.Resize(224)表示把圖像的短邊統一為224,另外一邊做同樣倍速縮放,不一定為224
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。
推薦閱讀:
- pytorch 中transforms的使用詳解
- pytorch 把圖片數據轉化成tensor的操作
- Pytorch中的圖像增廣transforms類和預處理方法
- 初識Pytorch使用transforms的代碼
- Pytorch使用transforms