'Python'에 해당되는 글 1건

  1. 2018.01.20 파이썬 Pillow 모듈

파이썬 Pillow 모듈

2018. 1. 20. 08:48 from Python

* 파이썬 이미지 처리 모듈 Pillow *



컴퓨터를 사용하는 가장 큰 이유는


인간이 할 수 없는 일(사실상 불가능해 보이는 다량의 일)을 손쉽게 해결해주기 때문이라고 생각합니다.


이번에 딥러닝 연구실에서 데이터를 만드는 데 가위바위보 이미지를 각각 2500장씩 만들어야 했습니다.


모든 이미지를 128 x 128로 리사이징 해야 할 뿐만 아니라 파일명까지 팀원들과 맞춰야 했습니다.


여기서 저는 파이썬을 사용해서 손쉽게 해결했습니다.




파이썬에는 Pillow 라는 이미지 처리 모듈이 있습니다.


제가 짠 소스를 예시로 보여드리겠습니다.


===========================================


from PIL import Image


lst_image = []

for i in range(2500): # i = 0~2499

lst_image = lst_image+['Image (' + str(i+1)+').jpg']

#Image (1~2500).jpg


for i in range(2500):

im = Image.open(lst_image[i])

im2 = im.resize((128,128))

str_tmp = ('Image' + str(i+17500) + '.jpg')

im2.save(str_tmp)

lst_image[i] = str_tmp


print("Finish!")


#im = Image.open('1.jpeg')

#im2 = im.resize((128,128))

#im2.save('test2.jpeg')

#print(im2.size)


===========================================


대충 반복문을 돌려서 기존의 파일명을 리스트 변수 하나에 때려넣은 뒤, 


리스트 변수에서 인덱스를 통해 접근하면서 하나씩 리사이징 후 새로운 파일명으로 저장하는 형식의 소스입니다.


Pillow 모듈의 함수를 한번 살펴볼까요?



1. from PIL import Image → Pillow 모듈은 import Pillow 로 하지 않습니다. import PIL 입니다.





2. im = Image.open('1.jpeg') → 1.jpeg 이라는 파일명의 이미지 파일을 엽니다. 


단순히 Image,open(파일명) 이 아니라 그 행위를 im 이라는 변수에 집어넣었습니다. 


모든 이미지 처리는 이미지를 연 후에 행동해야 하기 때문에, 앞으로 이미지 처리 함수들은 모두 im 변수를 통해 접근하게 됩니다. 


(여기서 '열다'의 의미는 '작업대상이다'를 의미합니다.)





3. im2 = im.resize((128,128)) → 리사이즈 해주는 함수입니다. 


2000 x 2000 사이즈의 파일이라도 resize((128,128)) 을 한다면 128 x 128 로 작아집니다.


im.resize((128,128)) 의 의미는 1번에서 나온 1.jpeg 파일을 연 후(작업대상으로 지정한 후), 그 파일을 resize 합니다. 


그리고 resize 한 새로운 파일을 im2 라는 변수에 집어넣었습니다. 


im 의 이미지는 1.jpeg(예를 들어 2000 x 2000) 이고, im2 의 이미지는 128 x 128 크기의 이미지가 되는 것 입니다.





4. im2.save('test2.jpeg') → 파일을 저장하는 함수입니다. 


im2 라는 변수 안에 있는 이미지 (128 x 128 크기의 이미지)를 test2.jpeg 이라는 파일명으로 저장합니다.





5. print(im2.size) → size 함수는 해당 변수의 이미지의 크기를 반환합니다. 


im2 이미지는 128 x 128 이기 때문에 print(im2.size) 함수를 사용할 경우 (128,128) 의 값을 출력해 줍니다.





------------------------------------------------------------------------------------------------------------------------------


이렇게 파이썬 이미지 처리 모듈 Pillow 의 4가지 기본적인 함수에 대해 살펴봤습니다.


>>> 1. Image.open(파일명) → (파일명) 파일을 작업대상으로 지정함.

>>> 2. im2 = im.resize((128,128)) → 작업대상으로 지정한 이미지의 크기를 128 x 128 로 변환 후 im2 변수에 넣음.

>>> 3. im2.save(파일명) → im2 변수 안에 있는 이미지를 (파일명) 이미지파일로 저장함.

>>> 4. print(im2.size) → im2 변수 안에 있는 이미지의 크기를 출력함.(출력은 print 함수가 담당함.)





Posted by NDC :