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。

推薦閱讀: