PIL Image,圖像與tensor的轉換,歸一化


示例代碼:

from torchvision import transforms
from PIL import Image

img_jpg = Image.open('C:/Users/admin/Desktop/bird.jpg').convert('RGB')   # convert()函數,用於不同模式圖像之間的轉換,
                                                                         # PIL中有九種不同模式,分別為1,L,P,RGB,RGBA,CMYK,YCbCr,I,F

print(img_jpg)   # 輸出:<PIL.Image.Image image mode=RGB size=500x333 at 0x16ADDF8B948>

to_tensor = transforms.ToTensor()
img_tensor = to_tensor(img_jpg)    # img_tensor的每個通道最大值為1.0,最小值為0

normalize = transforms.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))    # 歸一化到[-1, 1],公式是:(x-0.5)/0.5
img_norm = normalize(img_tensor)   # img_norm的每個通道最大值為1.0,最小值為-1.0


# transform tensor back to PIL image
img_unnorm = img_norm/2 + 0.5

to_PILimage = transforms.ToPILImage()
img_restored = to_PILimage(img_unnorm)

img_restored.save('C:/Users/admin/Desktop/bird_restored.jpg')

  

圖像:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM