는, 3 차원 매트릭스로 이미지 생성 거래를 논의 게시물의 대부분은 [0] [1] [2] 효과적으로 그러나 직접어떻게 RGB 값의 "삼중 항"을 포함하는 2D numpy arrayMatrix가 이미지를 생성합니까?
img = Image.fromarray(Matrix, 'RGB')
을 적용하는 데 필요한 정보를 포함하는, 난과 붙어 "3n"열과 "n"행이있는 거대한 행렬입니다.
[ 0 0 0 255 255 255 0 0 0
0 0 0 255 255 255 0 0 0
255 255 255 0 0 0 255 255 255]
위의 2 차원 매트릭스 3 × 3 "픽셀"을 나타내며, 사용 Image.fromarray 구멍의 전체 이미지를 생성합니다 : 당신이 볼 수있는 것처럼, "이미지"P3/P6 형식의 나를 알리는 방식으로 코딩 . 나는 3 차원 (!!!) 2 차원 배열로 분할하고 나서 np.dstack을 사용하고 있지만 그 코드는이 비현실적으로 큰 숫자 (700x2100)를 갖는 수천 개의 행렬을 생성하기 때문에 비효율적이라고 소리가 난다. 이미지로 표시됩니다.
이 내가 BTW, 일을 생각하고 무엇을 :
R = np.zeros((Y, X), dtype = np.uint8) # Same for G & B
for Row in range(Y):
for Column in range(3*X):
if Column % 3 == 0: # With Column-1 for G and -2 for B
R[Row][Column/3] = 2DMatrix[Row][Column]
#After populating R, G, B
RGB0 = np.dstack([R, G, B])
img = Image.fromarray(RGB0, 'RGB')
감사합니다!
논의 된 특성/(Y가 배를 X) 승 2 차원 매트릭스 감안할를이 색상 값은 8 비트 부호있는 것이 중요합니다'R = np.zeros ((Y, X), dtype = np.uint8) # G & B와 동일 범위 (Y)의 행 : 열 3 == 0 인 경우 : R [행] [열/3] = 2DMatrix [행] [열] 범위에있는 열의 경우 : 범위 3 (X *)의 경우 (R, G, B) RGB = np.dstack img = Image.fromarray (RGB, 'RGB') ' –