用 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)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM