Acdong
Learn by doing
Acdong
전체 방문자
오늘
어제
  • 분류 전체보기
    • Economy
      • Saving Money
    • Self-improvement
    • Thoughts
    • Machine learning
      • Deep Learning
      • Chatbot
      • NLP
    • MLops
      • AWS
      • Container
      • Serving
    • Computer Vision
    • Data Science
      • ADsP
      • R
    • Project
    • Python
      • Data Structure & Algorithm
    • C,C++
    • API
      • ElasticSearch
    • Error Note
    • Network
    • RDBMS
      • SQL

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • [GitHub]

인기 글

태그

  • 회귀계수
  • 데이터 전처리
  • 기계학습
  • nlp
  • Python
  • c포인터
  • 다중공선성
  • R그래프
  • R시각화
  • 머신러닝
  • 포인터
  • 존댓말 반말 분류
  • Numpy
  • pandas
  • 이미지 전처리
  • sbert
  • plot()
  • 어텐션
  • R
  • SentenceTransformer

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Acdong

Learn by doing

[이미지 전처리]. 이미지 크기 한꺼번에 변경하기 ( image preprocessing)
Computer Vision

[이미지 전처리]. 이미지 크기 한꺼번에 변경하기 ( image preprocessing)

2020. 11. 25. 13:59
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
    'Computer Vision' 카테고리의 다른 글
    • [이미지 전처리] Pillow PIL , Opencv cv2 , 이미지 형태 정규화(RGB, RGBA)
    • [이미지 전처리]. 이미지 차원 추가하기 , np.append_dim()
    • [이미지 전처리] Url to image , url 주소를 통한 이미지 처리
    • [이미지 전처리]. image to base64 , base64 to image 변환하는 방법
    Acdong
    Acdong
    E-mail : alswhddh@naver.com / 자연어처리와 MLops 를 연구하고 있는 스타트업 개발자입니다.

    티스토리툴바