Đọc ảnh PIL và output của nó sau khi đi qua hàm ToTensor()
1.PIL
PIL viết tắt cho Python Image Library. Muốn đọc ảnh dùng PIL, ta dùng code sau:
from PIL import Image import numpy as np pil_img = Image.open(image_path) a = np.array(pil_img)
Đầu ra sẽ
- một mảng 3 chiều
- sử dụng kênh màu RGB
- và thứ tự các chiều được lưu trong ổ cứng là (H, W, C)
Ảnh PIL được sử dụng khá phổ biến khi người ta muốn code deep learning bằng pytorch. Đơn giản vì hàm ToTensor() của torch.transform nhận đầu vào trực tiếp là PIL image (Ngoài ra cũng nhận cả numpy array đúng format nữa nhưng mà đọc ảnh trực tiếp bằng PIL thì sẽ tiện hơn nhiều vì chỉ cần hai bước là đọc + truyền vào)
2. Sau khi đi qua ToTensor()
Sử dụng code sau để chuyển PIL image sang tensor
import torch
import torchvision.transforms as transforms transform = transforms.Compose([transforms.ToTensor()])
tensor_img = transform(pil_img)
Output sẽ:
- được lưu trong ổ cứng theo thứ tự C,H,W
- range các giá trị pixel còn từ [0, 1]
- chuyển sang tensor (sure vì cái hàm tên là ToTensor() mà 🤡)