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 을 입력한다.
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

+ Recent posts