2017-04-23 3 views
1

행렬의 각 공백이 [R, G, B] 인 nxnx3 행렬을 RGB 이미지로 변환하려고합니다. 이 방법이 쉬울 것이라고 생각했지만 이상한 오류가 발생했습니다. 당신이 볼 수있는 http://www.cs.brandeis.edu//~arya/test2.bmp베개 : nxnx3 numpy 행렬에서 RGB 이미지를 만드는 이상한 출력

그것은 그것에서 빨간색 대각선 10 bixel 비트 맵으로 도보로 10 픽셀이있다 :

나는이 이미지를 가지고있다.

그리고 여기 내 파이썬 코드 :

import numpy as np 
from PIL import Image 
imm = Image.open("test2.bmp") 
t = np.int32(imm) 
print(t.shape) # (10,10,3) 
new = Image.fromarray(t, mode="RGB") 
new.save("test_output.bmp") 

그리고 나는이 이미지를 얻을 : http://www.cs.brandeis.edu//~arya/test_out.bmp - 원본 출력에서 ​​매우 분명 다른합니다. 나는 Image.fromarray()가 내 이미지를 어떻게 만드는지 기대할 것이다. 나는 무엇인가 놓치고 있는가?

감사합니다.

답변

2

베개 설명서에 따르면 "RGB" mode은 3x8 비트 정수를 의미하지만 배열은 32 비트 정수로 이루어져 있습니다. 대신 np.int8(imm)을 사용해 주시겠습니까?

+1

이것은 분명히 잘못되어 가고 있습니다. 감사합니다! – Arya

관련 문제