따라서 배열을 만들었습니다.
import numpy as np
data = np.zeros( (512,512,3), dtype=np.uint8)
data[256,256] = [255,0,0]
내가 원하는 것은 512×512 이미지의 중앙에 단일 빨간색 점을 표시하는 것입니다. (적어도 처음부터 … 나는 나머지 부분을 알아낼 수 있다고 생각합니다)
답변
PIL을 사용하여 이미지를 만들고 표시 할 수 있습니다.
from PIL import Image
import numpy as np
w, h = 512, 512
data = np.zeros((h, w, 3), dtype=np.uint8)
data[0:256, 0:256] = [255, 0, 0] # red patch in upper left
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 배열에 저장된 이미지를 표시하는 방법 (Jupyter 노트북에서 작동)
나는 더 간단한 답변이 있다는 것을 알고 있지만,이 답변은 이미지가 실제로 numpy 배열에서 어떻게 익사하는지 이해하게합니다.
로드 예
from sklearn.datasets import load_digits
digits = load_digits()
digits.images.shape #this will give you (1797, 8, 8). 1797 images, each 8 x 8 in size
한 이미지의 디스플레이 배열
digits.images[0]
array([[ 0., 0., 5., 13., 9., 1., 0., 0.],
[ 0., 0., 13., 15., 10., 15., 5., 0.],
[ 0., 3., 15., 2., 0., 11., 8., 0.],
[ 0., 4., 12., 0., 0., 8., 8., 0.],
[ 0., 5., 8., 0., 0., 9., 8., 0.],
[ 0., 4., 11., 0., 1., 12., 7., 0.],
[ 0., 2., 14., 5., 10., 12., 0., 0.],
[ 0., 0., 6., 13., 10., 0., 0., 0.]])
100 개의 이미지를 시각화하기 위해 빈 10 x 10 서브 플로트 생성
import matplotlib.pyplot as plt
fig, axes = plt.subplots(10,10, figsize=(8,8))
이미지 100 개 플로팅
for i,ax in enumerate(axes.flat):
ax.imshow(digits.images[i])
결과:
무엇을 axes.flat
합니까?
numpy 열거자를 작성하여 축을 반복하여 객체를 그릴 수 있습니다.
예:
import numpy as np
x = np.arange(6).reshape(2,3)
x.flat
for item in (x.flat):
print (item, end=' ')
답변
예를 들어 베개의 배열을 사용하여 :
from PIL import Image
from numpy import *
im = array(Image.open('image.jpg'))
Image.fromarray(im).show()
답변
파이썬 이미징 라이브러리는 NumPy와 배열을 사용하여 이미지를 표시 할 수 있습니다. 이 페이지에서 샘플 코드를 살펴보십시오.
편집 : 해당 페이지 하단의 메모에서 알 수 있듯이 최신 릴리스 노트를 확인하면 훨씬 간단합니다.