728x90
위 블로그 내용을 다시 적으면서 공부한거임.
- numpy.ndarray : H X W X C
- C : RGB는 3, Grayscale은 1 또는 0 의 값을 가짐
- 이미지의 밝기 : 최소 0, 최대 255값을 가짐. 밝을 수록 숫자가 커짐
[1. PIL img -> ndarray]
from PIL import Image
import numpy as np
rgb_img = Image.open('cat.jpg').convert('RGB')
rgb_img_arr = np.array(rgb_img)
print('RGB img arr:', rgb_img_arr)
print('RGB img shape:', rgb_img_arr.shape)
print('RGB scale:', 'min:', rgb_img_arr.min(), 'max:', rgb_img_arr.max())
이미지를 ndarray로 바꿨을 때는 H 340, W 557, C 3의 값을 가짐
밝기 또한 최소 0, 최대 255임
[2. PIL img 를 pytorch tensor 이미지로 변환]
- PIL img : H X W X C
- tensor : C X H X W
from torchvision.transforms import ToTensor, ToPILImage
tf_toTensor = ToTensor()
rgb_img_tensor_from_PIL = tf_toTensor(rgb_img)
print('RGB img tensor from PIL:', rgb_img_tensor_from_PIL)
print('RGB img tensor from PIL size:', rgb_img_tensor_from_PIL.size())
print('RGB img tensor from PIL scale:', rgb_img_tensor_from_PIL.min(), rgb_img_tensor_from_PIL.max())
size를 통해 형태를 보면 ndarray와 달리 채널 값이 맨 앞으로 간 것을 알 수 있다.
밝기 범위 또한 0~ 255가 아닌 0~1로 바뀌었다.
[3. ndarray -> pytorch tensor image]
- ndarray : H X W X C
- tensor : C X H X W
rgb_img_tensor_from_ndarray = tf_toTensor(rgb_img_arr)
print('RGB img tensor form ndarray:', rgb_img_tensor_from_ndarray)
print('RGB img tensor form ndarray size:', rgb_img_tensor_from_ndarray.size())
print('RGB img tensor form ndarray scale:', rgb_img_tensor_from_ndarray.min(), rgb_img_tensor_from_ndarray.max())
[4. pytorch tensor image -> ndarray]
- tensor : C X H X W
- ndarray : H X W X C
tf_toPILImage = ToPILImage()
img_PIL_from_Tensor = tf_toPILImage(rgb_img_tensor_from_PIL)
print('img_PIL_from_Tensor array :',np.array(img_PIL_from_Tensor))
print('img_PIL_from_Tensor array shape :',np.array(img_PIL_from_Tensor).shape)
[5. numoy arr 랑 tensor 값을 비교]
print(np.sum(~(rgb_img_arr == np.array(img_PIL_from_Tensor))))
두 값이 같기 때문에 0을 반환함
728x90
'STUDY > 인공지능' 카테고리의 다른 글
EasyDict 이란? 사용법 (0) | 2023.03.29 |
---|---|
yaml 파일 다루기, 읽기, key value 값 뽑기 (0) | 2023.03.29 |
Attention mechanism (0) | 2023.03.27 |
albumentations library (0) | 2023.02.24 |
[ML 책] 머신러닝이란? (0) | 2022.11.05 |