zoukankan      html  css  js  c++  java
  • 用 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)
  • 相关阅读:
    用于区分IE的:条件注释
    详解css:background
    scrollTop总为零原因;如何查看滚动条的位置或者说滚动条的滚动距离(待完善)
    过滤器Filter与监听器Listener
    JSP标签
    servlet
    JSP
    一个CSS简单入门网站
    开始写博客了!
    _nop()
  • 原文地址:https://www.cnblogs.com/ansang/p/8137114.html
Copyright © 2011-2022 走看看