У меня есть массив numpy
который является образом, считанным открытым cv
и сохраняющим его как строку. Поэтому я преобразовал массив np
в строку и сохранил то же самое. Теперь я хотел получить значение (которое является строкой) и преобразовать в исходное измерение массива numpy
. Можете ли вы все помочь мне в том, как это сделать?
Мой код выглядит следующим образом:
img = cv2.imread('9d98.jpeg',0)
img.shape # --> (149,115)
img_str=np.array2string(img,precision=2,separator=',') # to string length 197? which I dont know how
img_numpy=np.fromstring(img_str,dtype=np.uint8) # shape (197,) since this is returning only 1D array
Пожалуйста, помогите мне в решении того же
Задача состоит в том, чтобы сохранить не только буфер данных, но и форму и тип. np.fromstring
считывает буфер данных, но как 1d-массив; вы должны получить dtype и форму из другого места.
In [184]: a=np.arange(12).reshape(3,4)
In [185]: np.fromstring(a.tostring(),int)
Out[185]: array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11])
In [186]: np.fromstring(a.tostring(),a.dtype).reshape(a.shape)
Out[186]:
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
Пойдет ли json вариант?
После ответа здесь:
import numpy as np
import json
img = np.ones((10, 20))
img_str = json.dumps(img.tolist())
img_numpy = numpy.array(json.loads(img_str))
img_str
?img_str
. Посмотреть все многоточие (...). Это контролируется параметромthreshhold
. Это тот же тип конденсации, который мы получаем из простогоprint(img)
. Он также включает в себя все вложенные [] обычной печати. Это не хороший формат для сохранения.