336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
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할 사이즈를 선택한다.
아래 이미지를 입력으로 넣어주면,
저장 경로에 아래와 같은 결과를 얻을 수 있다.
'2017 > Python' 카테고리의 다른 글
[Python]mp4비디오파일 프레임 추출하기 (0) | 2017.09.26 |
---|---|
[Python]동영상 정보 보기 (0) | 2017.09.26 |