標籤:

用 opencv和numpy進行圖片和字元串互轉,並保存至 json

受 用 base64 進行圖片和字元串互轉,並保存至 json 作者啟發,試了試使用opencv來讀取圖片,然後用numpy轉為list,再轉為json格式。 發現完全可行。

圖片轉成列表,並保存至 json

我們將一張圖片通過opencv來讀取,轉換為numpy的矩陣。再轉為list,存入字典,轉為json文件即可。

# coding: utf-8# 導入相關庫import cv2import numpy as npfrom json import dumps# 要編碼的圖片文件 IMAGE_NAME = 1.png# 保存為的json文件JSON_NAME = opencv_temp.json# 通過opencv讀取圖片img = cv2.imread(IMAGE_NAME)# numpy中ndarray文件轉為listimg_list = img.tolist()# 字典形式保存數組img_dict = {}img_dict[name] = IMAGE_NAMEimg_dict[content] = img_list# 保存為json格式json_data = dumps(img_dict, indent=2)# 將數據保存到文件with open(JSON_NAME, w) as json_file: json_file.write(json_data)

從 json 讀取字元串,並轉換成圖片

# coding: utf-8import cv2import numpy as npimport json# 要讀取的JSON格式文件JSON_NAME = opencv_temp.json# 還原為圖片文件IMAGE_NAME = restore.png# 讀取文件為字典with open(JSON_NAME, "rb") as json_file: img_dict = json.load(json_file)# 獲取字典中內容,轉為listimg_list = img_dict[content]# list轉numpyimg = np.asarray(img_list)# 還原圖片cv2.imwrite(IMAGE_NAME,img)

推薦閱讀:

1.25【OpenCV圖像處理】直方圖反向投影
在 MFC 框架中,有什麼方法能直接將 OpenCV 2.0 庫中 Mat 格式的圖片傳遞到 Picture Control(圖片控制項)顯示?
【小林的OpenCV基礎課 0】一切為了學習!
OpenCV機器學習——樸素貝葉斯NBC

TAG:Python库 | OpenCV |