2017/Python
[Python]Image Crop(이미지 부분적으로 추출)
WONDY
2017. 9. 26. 13:32
PIL(Python Image Library)를 이용하여 입력받은 이미지파일을 부분적으로 추출하여 저장하려고 한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | from PIL import Image def image_crop( infilename , save_path): """ image file 와 crop한이미지를 저장할 path 을 입력받아 crop_img를 저장한다. :param infilename: crop할 대상 image file 입력으로 넣는다. :param save_path: crop_image file의 저장 경로를 넣는다. :return: """ img = Image.open( infilename ) (img_h, img_w) = img.size print(img.size) # crop 할 사이즈 : grid_w, grid_h grid_w = 96 # crop width grid_h = 96 # crop height range_w = (int)(img_w/grid_w) range_h = (int)(img_h/grid_h) print(range_w, range_h) i = 0 for w in range(range_w): for h in range(range_h): bbox = (h*grid_h, w*grid_w, (h+1)*(grid_h), (w+1)*(grid_w)) print(h*grid_h, w*grid_w, (h+1)*(grid_h), (w+1)*(grid_w)) # 가로 세로 시작, 가로 세로 끝 crop_img = img.crop(bbox) fname = "{}.jpg".format("{0:05d}".format(i)) savename = save_path + fname crop_img.save(savename) print('save file ' + savename + '....') i += 1 if __name__ == '__main__': image_crop('t_960.jpg', 'H:/SRGAN_DC/test_save/') | cs |
고 함수의 입력으로
infilename 은 image file 을 입력한다.
infilename 은 image file 을 입력한다.
save_path 는 image file 을 crop한 결과를 저장할 save_path를 입력한다.
img 사이즈를 알기위해 img.size를 img_h와 img_w를 받아 몇개의 image를 crop할 수 있는 확인한다.
grid_w, grid_h는 crop할 사이즈를 선택한다.
아래 이미지를 입력으로 넣어주면,
저장 경로에 아래와 같은 결과를 얻을 수 있다.