본문 바로가기
컴퓨터 언어/Python_PIL

[ Python / PIL ] PIL 이미지, Numpy 배열 변환 및 저장 ( Image.fromarray(), np.array(), np.asarray() )

by SuperMemi 2021. 12. 29.
반응형

2021.12.29 - [Computer Language/Python] - [ Python / PIL ] Image (open, save)

 

[ Python / PIL ] Image (open, save)

Python Imaging Library (PIL) PIL은 파이썬에서 이미지 분석 및 처리를 쉽게 할 수 있는 라이브러리이다. 다양한 이미지 파일 형식(PPM , PNG , JPEG , GIF , TIFF , BMP)을 지원하며, 다양한 이미지 처리와 그..

supermemi.tistory.com


매미


1. PIL 이미지를 NumPy 배열로 변환 (PIL Image to Numpy array)

 

간단하다.

np.array( ) 또는 np.asarray( ) 함수를 이용하여 PIL Image를 NumPy array로 변환할 수 있다.

 

 

위의 매미 이미지를 활용하여 아래 예제 실행해 보자.

 

import numpy as np
from PIL import Image

img = Image.open('memi.jpg')
img.show()

x = np.array(img)
print(x)
print(x.shape)

x_2 = np.asarray(img)
print(x_2)
print(x_2.shape)

예제 실행 1

 


2. NumPy 배열을 PIL 이미지로 변환 (Numpy array to PIL Image)

 

그렇다면 반대로 NumPy 배열로 되어있는 이미지 배열을 PIL 이미지로 변환할 수 있을까?

쉽다.

 

PIL 패키지의 Image.fromarray() 를 사용하면 된다.

 

import numpy as np
from PIL import Image

img = Image.open('memi.jpg')
img.show()

x = np.array(img) # PIL image to NumPy array
print(x)

img_2 = Image.fromarray(x) # NumPy array to PIL image
img_2.show()

예제 실행 2

 


3. NumPy 배열을 PIL Image로 저장하기

 

간단하다.

Image.fromarray() 를 사용하여 numpy 배열을 PIL Image로 변환하고, 이를 save() 를 통해 저장하면 된다.

 

import numpy as np
from PIL import Image

img = Image.open('memi.jpg')
img.show()

x = np.array(img) # PIL image to NumPy array
print(x)

img_2 = Image.fromarray(x) # NumPy array to PIL image
img_2.show()

img_2.save('memi_from_numpy_array.jpg','JPEG') # save PIL image

 

잘 저장되었다.

 


2021.12.31 - [Computer Language/Python] - [ Python / PIL ] PIL 이미지와 Torch.Tensor 변환 (transforms)

 

[ Python / PIL ] PIL 이미지와 Torch.Tensor 변환 (transforms)

2021.12.29 - [Computer Language/Python] - [ Python / PIL ] PIL 이미지, Numpy 배열 변환 및 저장 ( Image.fromarray(), np.array(), np.asarray() ) [ Python / PIL ] PIL 이미지, Numpy 배열 변환 및 저장 (..

supermemi.tistory.com

2021.12.29 - [Computer Language/Python] - [ Python / PIL ] PIL Image 에 바운딩 박스 그리기 (ImageDraw.Draw(), draw.rectangle(), grayscale)

 

[ Python / PIL ] PIL Image 에 바운딩 박스 그리기 (ImageDraw.Draw(), draw.rectangle(), grayscale)

2021.12.29 - [Computer Language/Python] - [ Python / PIL ] Image (open, save) [ Python / PIL ] Image (open, save) Python Imaging Library (PIL) PIL은 파이썬에서 이미지 분석 및 처리를 쉽게 할 수 있는..

supermemi.tistory.com

 


 

반응형