我使用opencv读取图像并将其保存为redis,如下所示:
frame=cv2.imread('/path/to/image.png')
rd.set('frame', frame)
然后,读回一个像这样的字符串表示:
[[[ 38 45 51]
[ 38 45 51]
[ 38 45 51]
...,
[235 217 222]]]
然后我试着像这样回来:
frameString=rd.get('frame')
mat=np.array(frameString)
但是
print mat.shape
输出
()
然后我试了
mat=eval(frameString)
这给了我错误:
exec exp in global_vars, local_vars
File "<console>", line 1, in <module>
File "<string>", line 1
[[[ 38 45 51]
^
SyntaxError: invalid syntax
问题是
how to convert this string representation back to numpy array correctly?
答案 0 :(得分:0)
最简单的方法是将其编码为JSON并将其保存到redis。
frame=cv2.imread('/path/to/image.png')
rd.set('frame', json.dumps(frame. tolist()))
frameString=json.loads(rd.get('frame'))
mat=np.array(frameString)
您可以找到更快,更紧凑的序列化格式。