첫째로, resize라고 해서 뭔가 출력되는 이미지의 크기가 변할 것 같지만,
사실은 이미지의 실제 크기가 변경되는 것이 아니라 픽셀수가 변경되는 것이라는 점이다.
그래서 픽셀수를 줄이면 그만큼 파일을 손상한 것이기 때문에,
다시 늘린다고 해서 원본의 해상도로 돌릴 수 없다.
원본의 해상도를 갖기 위해서는 다시 파일을 로드해야한다.
가로, 세로를 각각 2000픽셀로 늘린 결과이다.
두번째로, 픽셀수를 늘린다고 해서 해상도가 좋아지지는 않는다.
앞선 이야기와 연결되는 부분인데, 한번 줄였던 이미지 파일의 해상도를 되돌릴 수 없듯,
원본의 해상도를 높일 수는 없다.
어찌보면 당연한 것이 jupyter notebook에서 이미지를 업그레이드 시켜줄 수는 없기 때문이다.
cat.jpg를 다시 로드한 후에 바로 가로,세로를 2000으로 늘려봤다.
마지막으로 출력되는 이미지의 물리적인 크기를 줄이거나 늘릴 수 있는 방법은
가로, 세로의 비율을 1:1이 아니게 지정했을 경우이다.
가로 : 세로 = 1:1이면 항상 위 사진들처럼 일정한 크기로 출력되지만
비율을 다르게 하면 한쪽 변의 크기를 늘리거나 줄일 수 있다.
가로 : 세로 = 1:2로 지정해보았다.
Albmentations
Albumentations는 이미지를 손쉽게 augmentation 해주는 python 라이브러리이다.
코드 몇 줄로 매우 쉽게 구현할 수 있다.
또한 다양한 영상변환 알고리즘을 제공하고 있고, 그 처리속도도 매우 빨라 딥러닝 전처리 용으로 유용하게 사용할 수 있다.
A.Compose() 안에 augmentation하고 싶은 함수가 들어있는 리스트를 입력하면 됩니다.
각 함수들에는 p라는 파라미터를 입력받게 되어있는데, probability의 약자로 해당 함수가 적용될 확률을 입력하면 됩니다.
1이라면 무조건 적용하는 것이고, 0.5라면 절반의 확률로 적용됩니다.
이후 transform 함수에 image파라미터에 image 변수를 넣으면 dictionary 형태로 반환되는데, image라는 key의 value값으로 결과가 반환됩니다