programing

numpy 배열을 이미지로 변환하고 표시하는 방법은 무엇입니까?

new-time 2020. 5. 17. 21:48
반응형

numpy 배열을 이미지로 변환하고 표시하는 방법은 무엇입니까?


따라서 배열을 만들었습니다.

import numpy as np
data = np.zeros( (512,512,3), dtype=np.uint8)
data[256,256] = [255,0,0]

내가 원하는 것은 512x512 이미지의 중앙에 단일 빨간색 점을 표시하는 것입니다. (적어도 처음부터 ... 나는 나머지 부분을 알아낼 수 있다고 생각합니다)


PIL을 사용하여 이미지를 만들고 표시 할 수 있습니다.

from PIL import Image
import numpy as np

w, h = 512, 512
data = np.zeros((h, w, 3), dtype=np.uint8)
data[256, 256] = [255, 0, 0]
img = Image.fromarray(data, 'RGB')
img.save('my.png')
img.show()

다음이 작동합니다.

from matplotlib import pyplot as plt
plt.imshow(data, interpolation='nearest')
plt.show()

Jupyter 노트북 / 랩을 사용하는 경우 matplotlib를 가져 오기 전에이 인라인 명령을 사용하십시오.

%matplotlib inline 

최단 경로는

scipy

다음과 같이 사용하는 것입니다.

from scipy.misc import toimage
toimage(data).show()

이를 위해서는 PIL 또는 필로우도 설치해야합니다.PIL 또는 필로우도 필요하지만

다른 뷰어를 호출

있는 유사한 방법 은 다음과 같습니다.

from scipy.misc import imshow
imshow(data)

 

pygame을

사용하면 창을 열고 표면을 픽셀 배열로 가져오고 원하는대로 조작 할 수 있습니다. 그러나 numpy 배열을 표면 배열로 복사해야하지만 파이 게임 표면 자체에서 실제 그래픽 작업을 수행하는 것보다 훨씬 느립니다.


 

파이썬 이미징 라이브러리는

NumPy와 배열을 사용하여 이미지를 표시 할 수 있습니다. 이 페이지에서 샘플 코드를 살펴보십시오.

편집 : 해당 페이지 하단의 메모에서 알 수 있듯이 최신 릴리스 노트를 확인하면 훨씬 간단합니다.

http://effbot.org/zone/pil-changes-116.htm


예를 들어 베개의 배열을 사용하여 :

from PIL import Image
from numpy import *

im = array(Image.open('image.jpg'))
Image.fromarray(im).show()

참고 URL :

https://stackoverflow.com/questions/2659312/how-do-i-convert-a-numpy-array-to-and-display-an-image

반응형