[Image] Image resize & convert(python)
Image resize & convert(python)
Image resize code
from PIL import Image
import os
import argparse
def rescale_images(directory, size):
for img in os.listdir(directory):
im = Image.open(directory+'\\'+img)
im_resized = im.resize(size, Image.ANTIALIAS)
im_resized.save(directory+'\\'+img)
if __name__ == '__main__':
parser = argparse.ArgumentParser(description="Rescale images")
parser.add_argument('-d', '--directory', type=str, required=True, help='Directory containing the images')
parser.add_argument('-s', '--size', type=int, nargs=2, required=True, metavar=('width', 'height'), help='Image size')
args = parser.parse_args()
rescale_images(args.directory, args.size)
- python (resize code filename).py -d (To resize directory) -s (width_size height_size)
ps. 실제 실행 시 (~~) 괄호는 생략!
Image convert code
import numpy as np
import os
from os import listdir
from os.path import isfile, join
from PIL import Image
import argparse
np.random.seed(3)
from keras.preprocessing.image import ImageDataGenerator, array_to_img, img_to_array, load_img
parser = argparse.ArgumentParser(description="generate images")
parser.add_argument('-d', '--directory', type=str, required=True, help='Directory containing the images')
parser.add_argument('-s', '--savedirectory', type=str, required=True, help='Directory savingthe images')
args = parser.parse_args()
data_datagen = ImageDataGenerator(rescale=1./255)
data_datagen = ImageDataGenerator(rescale=1./255,
rotation_range=30,
shear_range=5.5,
width_shift_range=0.1,
height_shift_range=0.1,
zoom_range=0.2,
horizontal_flip=True,
vertical_flip=True,
fill_mode='nearest')
filename_in_dir = []
filename = './' + args.directory
savefilename = './'+ args.savedirectory
counts= 0
for root, dirs, files in os.walk(filename): #하위폴더
for fname in files:
full_fname = os.path.join(root, fname)
filename_in_dir.append(full_fname)
for file_image in filename_in_dir:
counts += 1
print(file_image, counts)
img = load_img(file_image)
x = img_to_array(img)
x = x.reshape((1,) + x.shape)
i = 0
for batch in data_datagen.flow(x,save_to_dir=savefilename, save_prefix='', save_format='jpg'):
i += 1
if i > 3: # 3배 8배 ----
break
- python (convert code filename).py -d (To convert directory) -s (To save directory)
ps. 실제 실행 시 (~~) 괄호는 생략!
rotation_range = 90
지정된 각도 범위내에서 임의로 원본이미지를 회전시킵니다. 단위는 도이며, 정수형입니다. 예를 들어 90이라면 0도에서 90도 사이에 임의의 각도로 회전시킵니다.
width_shift_range = 0.1
지정된 수평방향 이동 범위내에서 임의로 원본이미지를 이동시킵니다. 수치는 전체 넓이의 비율(실수)로 나타냅니다. 예를 들어 0.1이고 전체 넓이가 100이면, 10픽셀 내외로 좌우 이동시킵니다.
height_shift_range = 0.1
지정된 수직방향 이동 범위내에서 임의로 원본이미지를 이동시킵니다. 수치는 전체 높이의 비율(실수)로 나타냅니다. 예를 들어 0.1이고 전체 높이가 100이면, 10픽셀 내외로 상하 이동시킵니다.
shear_range = 0.5
밀림 강도 범위내에서 임의로 원본이미지를 변형시킵니다. 수치는 시계반대방향으로 밀림 강도를 라디안으로 나타냅니다. 예를 들어 0.5이라면, 0.5 라이안내외로 시계반대방향으로 변형시킵니다.
zoom_range = 0.3
지정된 확대/축소 범위내에서 임의로 원본이미지를 확대/축소합니다. “1-수치”부터 “1+수치”사이 범위로 확대/축소를 합니다. 예를 들어 0.3이라면, 0.7배에서 1.3배 크기 변화를 시킵니다.
horizontal_flip = True
수평방향으로 뒤집기를 합니다.
vertical_flip = True
수직방향으로 뒤집기를 합니다.
출처
https://github.com/khw11044/image-resize-convert-size