본문 바로가기
파이썬

파이썬 numpy with python : 3d 배열을 2d로 변환

by º기록 2020. 11. 16.
반응형

제가 컬러 이미지를 가지고 있고 자연스럽게 이것은 파이썬에서 3 차원 배열로 표현 될 것입니다. 모양 (n x m x 3)이라고 말하고 img라고 부릅니다.

새로운 2 차원 배열을 원합니다.이 배열의 각 행에 R, G 및 B 채널의 "평탄화 된"버전이 각각 포함되도록 "나레이"라고 부르는 모양 (3, nxm)을 갖습니다. 또한 다음과 같이 원래 채널을 쉽게 재구성 할 수있는 속성이 있어야합니다.

narray[0,].reshape(img.shape[0:2])    #so this should reconstruct back the R channel.

질문은 "img"에서 "나레이"를 구성하는 방법입니다. 간단한 img.reshape (3, -1)은 요소의 순서가 나에게 바람직하지 않기 때문에 작동하지 않습니다.

감사

 

해결 방법

 


img.transpose(2,0,1).reshape(3,-1)

샘플 실행-

In [16]: img
Out[16]: 
array([[[155,  33, 129],
        [161, 218,   6]],

       [[215, 142, 235],
        [143, 249, 164]],

       [[221,  71, 229],
        [ 56,  91, 120]],

       [[236,   4, 177],
        [171, 105,  40]]])

In [17]: img.transpose(2,0,1).reshape(3,-1)
Out[17]: 
array([[155, 161, 215, 143, 221,  56, 236, 171],
       [ 33, 218, 142, 249,  71,  91,   4, 105],
       [129,   6, 235, 164, 229, 120, 177,  40]])

 

참조 페이지 https://stackoverflow.com/questions/32838802

 

 

반응형

댓글