728x90
정보통신공학전공 졸업 작품 당시 시각 장애인 의류 탐지기를 주제로 하였었는데, 그 때 포스팅 해 둔 글을 남겨두려 한다.
아래의 그림과 같이 img폴더의 하위에 img_aug 파일이 있고, img 폴더안에 여러 사진들이 있을 때,
from PIL import Image, ImageEnhance, ImageChops import glob import numpy as np import random import cv2 import os path = "./img" file_list = os.listdir(path) images = [Image.open(file).convert('RGB').resize((300, 300)) for file in glob.glob("img/*.jpg")] save = "./img/img_aug/" for i, image in zip(file_list, images): save_path = save save_path = save + i[:-4] #밝기 enhancer = ImageEnhance.Brightness(image) brightness_image = enhancer.enhance(1.8) brightness_image.save(save_path+'_brightness.jpg') #좌우 대칭 horizonal_flip_image = image.transpose(Image.FLIP_LEFT_RIGHT) horizonal_flip_image.save(save_path+'_horizonal_flip.jpg') #상하 대칭 vertical_flip_image = image.transpose(Image.FLIP_TOP_BOTTOM) vertical_flip_image.save(save_path+'_vertical_flip.jpg') #좌우 이동 width, height = image.size shift = random.randint(0, width * 0.2) horizonal_shift_image = ImageChops.offset(image, shift, 0) horizonal_shift_image.paste((0), (0, 0, shift, height)) horizonal_shift_image.save(save_path+'_horizonal_shift.jpg') #상하 이동 width, height = image.size shift = random.randint(0, height * 0.2) vertical_shift_image = ImageChops.offset(image, 0, shift) vertical_shift_image.paste((0), (0, 0, width, shift)) vertical_shift_image.save(save_path+'_vertical_shift.jpg') #회전 rotate_image = image.rotate(random.randint(-30, 30)) rotate_image.save(save_path+'_rotate.jpg') #기울기 #cx, cy = 0.1, 0 #cx, cy = 0, 0.1 cx, cy = 0, random.uniform(0.0, 0.3) shear_image = image.transform( image.size, method=Image.AFFINE, data=[1, cx, 0, cy, 1, 0,]) shear_image.save(save_path+'_shear.jpg') #확대 축소 zoom = random.uniform(0.7, 1.3) #0.7 ~ 1.3 width, height = image.size x = width / 2 y = height / 2 crop_image = image.crop((x - (width / 2 / zoom), y - (height / 2 / zoom), x + (width / 2 / zoom), y + (height / 2 / zoom))) zoom_image = crop_image.resize((width, height), Image.LANCZOS) zoom_image.save(save_path+'_zoom.jpg')
img_aug 폴더안에 8가지의 변형 이미지가 저장된다.
댓글