Python에서 NumPy 배열을 PIL 이미지로 변환
이 튜토리얼에서는PIL
패키지의Image.fromarray()
를 사용하여 NumPy 배열을PIL
이미지로 변환하는 방법을 설명합니다. Python Imaging Library (PIL
)는 다양한 이미지 처리 기능을 갖춘 Python 라이브러리입니다.
Image.fromarray()
함수는 배열 객체를 입력으로 받아 배열 객체에서 만든 이미지 객체를 반환합니다.
Python에서 NumPy 배열을 PIL 이미지로 변환
import numpy as np
from PIL import Image
image = Image.open("lena.png")
np_array = np.array(image)
pil_image = Image.fromarray(np_array)
pil_image.show()
출력:
Image
에서open()
메소드를 사용하여 현재 작업 디렉토리의lena.png
이미지를 읽고 이미지 객체를 반환합니다.
그런 다음numpy.array()
메서드를 사용하여이 이미지 객체를 NumPy 배열로 변환합니다.
Image.fromarray()
함수를 사용하여 배열을PIL
이미지 객체로 다시 변환하고 마지막으로show()
메서드를 사용하여 이미지 객체를 표시합니다.
import numpy as np
from PIL import Image
array = np.random.randint(255, size=(400, 400), dtype=np.uint8)
image = Image.fromarray(array)
image.show()
출력:
여기서는 0
에서 255
까지의 난수로 크기가 400x400
인 NumPy 배열을 만든 다음 Image.fromarray()
함수를 사용하여 배열을 Image
객체로 변환하고 ‘이미지’를 표시합니다.show()
메서드를 사용합니다.
Matplotlib 컬러 맵을 사용하여 NumPy 배열을 PIL 이미지 Python으로 변환
import numpy as np
from PIL import Image
import matplotlib.pyplot as plt
from matplotlib import cm
image_array = plt.imread("lena.jpg")
image_array = image_array / 255
image = Image.fromarray(np.uint8(cm.plasma(image_array) * 255))
image.show()
출력:
Matplotlib패키지의 플라즈마컬러 맵을 적용합니다. 이미지에 컬러 맵을 적용하려면 먼저 최대 값이 1
인 배열을 정규화합니다. 위의 예에서image_array
에있는 요소의 최대 값은255
입니다. 따라서 정규화를 위해image_array
를 255로 나눕니다.
그런 다음image_array
에 컬러 맵을 적용하고255
를 다시 곱합니다. 그런 다음np.uint8()
메서드를 사용하여 요소를int
형식으로 변환합니다. 마지막으로Image.fromarray()
함수를 사용하여 배열을 이미지로 변환합니다.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn