원본 이미지 (모양과 dtype이 ((1024, 1024, 3), dtype('uint8'))
인)를 1D 배열로 먼저 변환하여 해당 1D 배열을 하나의 관찰로 트레이닝 세트에 입력 할 수 있습니다.파이썬에서 이미지 행렬을 변형합니다
이제 해당 1D 배열을 원래 형식으로 변환하고 싶습니다.
원래 이미지를 1D 배열로 변환하는 데 num37에서 사용할 수있는 flatten()
함수를 사용했습니다.
In[80]: t = misc.imread('b.png') #to read the image
In[81]: t.shape, t.dtype
Out[81]: ((1024, 1024, 3), dtype('uint8'))
#To convert the above image into 1D array
In[82]: t.flatten()
Out[82]: array([ 5, 40, 121, ..., 130, 110, 89], dtype=uint8)
가 지금은 (모양 즉 (1024,1024,3)
) 원래 행렬에 (t.flattern()
결과) 위의 행렬을 변환 할 : 다음은 코드입니다.
내가 무엇을해야하는지 알려주세요.
업데이트 : 나는 t.flatten
의 모양을 확인하고이 나옵니다
In[86]: p=t.flatten()
In[87]: p.shape
Out[86]:(6291456,)
그러나 = (* 3 * 2 1024 * 1024) 6291456. 이제이 추가 용어 (예 :)가 어디에서 나오는 지 혼란 스럽습니다.
또한 reshape 명령을 사용했지만 명령을 실행하면 오류가 발생합니다. 사용 reshape
l=p.reshape(1024,1024,3)
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-89-b1ab41666df7> in <module>()
----> 1 l=p.reshape(1024,1024,3)
ValueError: total size of new array must be unchanged
그냥'reshape'? – Divakar
@Divaker 나는 그것을 사용했지만 모호한 에러를 보여주고있다. – Lok
주어진 초기 형태의 배열에 대해'(6291456,)'이되는'p.shape'를 재현 할 수 없다. – akilat90