Я хочу сначала преобразовать исходное изображение (где форма и dtype - ((1024, 1024, 3), dtype('uint8'))
) в массив 1D, чтобы я мог ввести этот 1D-массив в обучающий набор как одно наблюдение.Измените матрицу изображения в python
Теперь я хочу преобразовать этот массив 1D в его оригинальную форму.
Для преобразования исходного изображения в массив 1D я использовал flatten()
функцию, доступную в numpy. Ниже код:
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)
Теперь я хочу, чтобы преобразовать выше матрицу (результат t.flattern()
) в исходную матрицу (т.е. (1024,1024,3)
в форме).
Скажите, пожалуйста, что мне делать.
Update: Я проверил форму t.flatten
и выходит быть
In[86]: p=t.flatten()
In[87]: p.shape
Out[86]:(6291456,)
Но 6291456 = (1024 * 1024 * 3 *). Теперь я смущен тем, что оттуда выходит этот дополнительный срок (т.е.).
Я также использовал команду 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
Я не могу воспроизвести 'p.shape' становление' (6291456,) 'для массива заданной начальной формы. – akilat90