用 opencv和numpy进行图片和字符串互转,并保存至 json

Posted ayew

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用 opencv和numpy进行图片和字符串互转,并保存至 json相关的知识,希望对你有一定的参考价值。

用 opencv和numpy进行图片和字符串互转,并保存至 json

转至 https://zhuanlan.zhihu.com/p/27349847

受 用 base64 进行图片和字符串互转,并保存至 json 作者启发,试了试使用opencv来读取图片,然后用numpy转为list,再转为json格式。 发现完全可行。

图片转成列表,并保存至 json

我们将一张图片通过opencv来读取,转换为numpy的矩阵。再转为list,存入字典,转为json文件即可。

 

 1 # coding: utf-8
 2 # 导入相关库
 3 import cv2
 4 import numpy as np
 5 from json import dumps
 6 # 要编码的图片文件  
 7 IMAGE_NAME = \'1.png\'
 8 # 保存为的json文件
 9 JSON_NAME = \'opencv_temp.json\'
10 
11 # 通过opencv读取图片
12 img = cv2.imread(IMAGE_NAME)
13 # numpy中ndarray文件转为list
14 img_list = img.tolist()
15 
16 # 字典形式保存数组
17 img_dict = {}
18 img_dict[\'name\'] = IMAGE_NAME
19 img_dict[\'content\'] = img_list
20 
21 # 保存为json格式
22 json_data = dumps(img_dict, indent=2)
23 # 将数据保存到文件
24 with open(JSON_NAME, \'w\') as json_file:
25     json_file.write(json_data)
26 
27 从 json 读取字符串,并转换成图片
28 # coding: utf-8
29 import cv2
30 import numpy as np
31 import json
32 
33 # 要读取的JSON格式文件
34 JSON_NAME = \'opencv_temp.json\'
35 # 还原为图片文件
36 IMAGE_NAME = \'restore.png\'
37 
38 # 读取文件为字典
39 with open(JSON_NAME, "rb") as json_file:
40     img_dict = json.load(json_file)
41 
42 # 获取字典中内容,转为list
43 img_list = img_dict[\'content\']
44 # list转numpy
45 img = np.asarray(img_list)
46 # 还原图片
47 cv2.imwrite(IMAGE_NAME,img)

 

以上是关于用 opencv和numpy进行图片和字符串互转,并保存至 json的主要内容,如果未能解决你的问题,请参考以下文章

opencv QImage与Mat 互转 及简单的图像处理

numpy_array与PIL.Image之间的互转

markdown NumPy的和熊猫数据互转

[python] 工作记录一利用opencv,numpy旋转图片无黑边(轮子必须由我造!!!)

OpenCV Mat和Uchar互转

gensim与numpy array 互转