728x90
구글의 티쳐블 머신을 학습시키기 위해선 224px , 224px로 이미지 크기를 조정해야 한다.
많은 이미지들의 크기를 한번에 바꾸는 방법을 알아보자.
프로그래머는 귀차니즘이 많을수록 실력이 늘어나는 것같다. ㅋㅋ
먼저 패키지를 임포트 한다.
import os import glob
그리고 현재 경로를 확인하는 함수 os.getcwd() 실행해서 현재 위치를 체크한다.
os.getcwd() # 현재경로 확인
그리고 glob 함수를 통해서 이미지들의 경로들을 리스트로 받아온다.
animal = glob.glob(os.getcwd() + "./동물/동물/*.jpg") beauti = glob.glob(os.getcwd() + "./뷰티/뷰티/*.jpg") fashion = glob.glob(os.getcwd() + "./패션/패션/*.jpg") kids = glob.glob(os.getcwd() + "./키즈/키즈/*.jpg") game = glob.glob(os.getcwd() + "./게임/게임/*.jpg") eating = glob.glob(os.getcwd() + "./먹방/먹방/*.jpg")
인자로 들어간 코드를 해석하면
animal = glob.glob(os.getcwd() + "./동물/동물/*.jpg")
현재 경로에서 "동물" 폴더안에 있는 "동물" 폴더 안에있는 *. jpg ( 확장자가 jpg 인 파일)
들의 경로를 리스트로 반환해라
결과를 보면

jpg 파일들의 경로들이 모두 리스트에 담겼다.
그 상태에서 모든 카테고리를 리스트에 담는다.
categoryList = [animal,beauti,fashion,kids,game,eating]
그리고 이미지 처리 패키지를 임포트
from wand.image import Image
보통은 Pillow 패키지의 PIL , Image를 사용하지만
나는 이상하게 에러가 자꾸 나서 (. jpg를 처리할 때 에러가 났던 것 같음.)
그래서 다른 패키지를 계속 찾아보다가 wand.imge 패키지를 사용해서 처리했다.
# 224 px * 244px 로 변경 for ca in categoryList: for imgPath in ca: img = Image(filename=imgPath) img.sample(224,224) img.save(filename=imgPath)
처리는 간단하다 Image()에 filename 속성의 이미지 경로를 넣고
sample 함수로 이미지의 가로세로 px 크기를 지정한다.
그리고 그 이미지를 고대로 저장( 덮어쓰기) 하면 된다.
시간은 좀 오래 걸리지만 노가다로 하는 것보다 훨씬 낫지 ㅎㅎ
반응형
'Computer Vision' 카테고리의 다른 글
[이미지 전처리]. ImageDataGenerator 클래스 : 이미지 제너레이터 (0) | 2020.12.07 |
---|---|
[이미지 전처리] Pillow PIL , Opencv cv2 , 이미지 형태 정규화(RGB, RGBA) (0) | 2020.12.04 |
[이미지 전처리]. 이미지 차원 추가하기 , np.append_dim() (0) | 2020.12.04 |
[이미지 전처리] Url to image , url 주소를 통한 이미지 처리 (0) | 2020.11.25 |
[이미지 전처리]. image to base64 , base64 to image 변환하는 방법 (2) | 2020.11.25 |