Python 实现opencv所使用的图片格式与 base64 转换

yizhihongxing

下面我来详细讲解一下 Python 实现 OpenCV 所使用的图片格式与 base64 转换的完整攻略。

1. 将图片转成base64格式的字符串

首先,我们需要将图片转成 base64 格式的字符串。这可以通过使用 Python 的 base64 模块以及 OpenCV 库来实现。代码如下:

import cv2
import base64

# Read image
img = cv2.imread('path/to/image.png')

# Convert image to base64 string
ret, buffer = cv2.imencode('.png', img)
img_base64 = base64.b64encode(buffer).decode('utf-8')

这里,我们首先使用 OpenCV 库中的 imread 函数读取了图片文件,并将其存储到变量 img 中。接着,我们使用 imencode 函数将图片转换为 PNG 格式的二进制数据,并将其存储到变量 buffer 中。最后,我们再使用 Python 自带的 base64 模块将二进制数据编码为 base64 格式的字符串,并将其存储到变量 img_base64 中。

2. 将base64格式的字符串转成图片

接下来,我们需要将 base64 格式的字符串转换成图片。这可以通过使用 Python 的 base64 模块以及 OpenCV 库来实现。代码如下:

import cv2
import base64
import numpy as np

# Decode base64 string to image
img_base64 = 'base64_string_here'
img_binary = base64.b64decode(img_base64)
img = cv2.imdecode(np.fromstring(img_binary, dtype=np.uint8), cv2.IMREAD_COLOR)

# Save image
cv2.imwrite('path/to/output/image.png', img)

这里,我们首先将之前生成的 base64 格式的字符串存储在 img_base64 变量中。接着,我们使用 Python 自带的 base64 模块将其解码为二进制数据,并将其存储在变量 img_binary 中。接下来,我们使用 OpenCV 库中的 imdecode 函数将二进制数据解码为一张图片,并将其存储在变量 img 中。最后,我们可以使用 imwrite 函数将图片保存到本地。

示例

现在,我们来看一下具体的示例:

示例1:将图片转成base64格式的字符串

我们在代码中读取一张名为 example.png 的图片并将其转换为 base64 格式的字符串。代码如下:

import cv2
import base64

# Read image
img = cv2.imread('example.png')

# Convert image to base64 string
ret, buffer = cv2.imencode('.png', img)
img_base64 = base64.b64encode(buffer).decode('utf-8')

# Print base64 string
print(img_base64)

输出结果如下:

iVBORw0KGgoAAAANSUhEUgAAA8AAAAKQAIAAAANniYqAAAAA3NCSVQICAjb4U/gAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH5wQBFjYJtwjbGQAAAp9JREFUaN7t3QmIXNkhxb/HnnjKa0QWMozihXJ/jxzBU4SHIbjz9AJiJmwlZ7WIgonLXsgyQ3cNTLJIzrNt57O4DU22REmjKvf58U9ujVxSukJ92JnpmQvRVu3kLGCMEwFjHNFVQo1hxzCvKMq8MSfT9col1gXzqsLEDd1kJVESNC31ymxTVUoXztMAqDLq9lj8UnDT1UWQ92OEcyEosWBqW4oDxxyWh5ExdMO43W4yM2V0vupZ6nLjj0b7A5qM5M1cq77AVYNnfyJc6vJeWBrdqXJWvWaVjB6gjPPNQklBGRcy2QkLp5LA38lzWSJdZcUhTJGLc+RGQ97XK7qEapVJYKRMlYK80sRKJkg033yo5gpq7sd7cq2ZiaHWH4m68Qm7flz+DMZ+Rrn3lu/P+KT3ZmH8RGGJmwkZ+IiU6P0yHL3y2pJZmopU8kgMCd2q0z7zNnDcqNcvHSohqg22qhh8GmD8z7k1QKlRLM1Q+ZxNtdOeyrytLh3OXqGk3jkdognxqsxFETVA5XG+CBmLSUzh2Dhh0t0ZOUBRyAC9PPFoGzTpY2eX2sSEKonsuQmKuK89ME1DO9wgB87hPMMQtmrBJRLE/Rn+2bmR2dl1Swf0GSpwDQCBE+GWcFr1orVeRC6eYh7UOjzOjQ5QcQLUD0mnLliLir8kIGRoQet2Ot4cwn+KHwwAGXxQCxdM7Dbi+PKF4bV58KnmMNyGsA/WypT/mQ8DfuL3DAZ9gpM/pLo0DPsJ0Fea3quCfXKJcTVU7kofY8E1qlF6HL7OXS0VS5dUVfQ9hneb/6yChmwVPqNQwDF/ifTaliX6KbUIkcuw1vM3ZuGh2We++0vMaWq9EdyMAAAAASUVORK5CYII=

示例2:将base64格式的字符串转成图片

我们将之前生成的 base64 格式的字符串解码成一张图片并保存到本地。代码如下:

import cv2
import base64
import numpy as np

# Decode base64 string to image
img_base64 = 'base64_string_here'
img_binary = base64.b64decode(img_base64)
img = cv2.imdecode(np.fromstring(img_binary, dtype=np.uint8), cv2.IMREAD_COLOR)

# Save image
cv2.imwrite('example_output.png', img)

这里,我们先将 img_base64 替换成之前示例1生成的 base64 格式的字符串。执行后,输出结果是将图片解码并保存到 example_output.png 文件中。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 实现opencv所使用的图片格式与 base64 转换 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • 学python最电脑配置有要求么

    学习Python并不需要特别高的电脑配置,但是建议至少满足以下要求: 处理器:至少双核CPU,推荐四核及以上 内存:建议8GB及以上 存储:至少100GB以上的硬盘或固态硬盘(SSD) 这些要求可以保证你的电脑可以顺畅运行Python的开发环境和一些常见的编程工具。 另外,为了更好的学习体验,还可以考虑安装一些必备的软件: Python解释器:如果你是初学者…

    python 2023年6月5日
    00
  • python 画三维图像 曲面图和散点图的示例

    要在Python中画三维图像,可以使用Matplotlib库中的mplot3d模块。它提供了曲面绘制、散点绘制、线框绘制、多个数据集合并绘制、等值曲面绘制等功能。以下是Python 画三维图像 曲面图和散点图的示例攻略。 1. 曲面绘制 1.1 数据准备 首先我们需要准备三元数据,即 x, y, z。在这个示例中,我们准备了以下数据。 import nump…

    python 2023年5月19日
    00
  • Python实现完全数的示例详解

    Python实现完全数的示例详解 简介 完全数指一个数等于其因子之和,比如6是一个完全数,因为6=1+2+3,而28也是一个完全数,因为28=1+2+4+7+14。在本文中,我们将使用Python编程语言来实现查找完全数的算法。 实现算法 我们可以使用以下步骤来查找一个范围内的所有完全数: 找到一个数的所有因子 将所有因子相加,并检查它是否等于原始数字 如果…

    python 2023年6月5日
    00
  • 如何使用Python在MySQL中使用读锁和写锁?

    在MySQL中,读锁和写锁是用于控制并发访问的机制,它们可以确保多个用户同时访问同一行时不会发生冲突。在Python中,可以使用MySQL连接来执行读锁和写锁查询以下是在Python使用读锁和写锁的完整攻略,包括读锁和写锁的基本语法使用读锁和写锁的例以如何在Python中使用读锁和写锁。 读锁和写锁的基本语法 在MySQL中,可以使用SELECT语句来读锁,…

    python 2023年5月12日
    00
  • 用Python自动下载网站所有文件

    要使用Python自动下载网站所有文件,可以采用以下步骤: 导入所需的模块:使用Python进行网络爬虫需要使用到的模块有requests和beautifulsoup4,因此需要先通过pip安装这两个模块。安装完成后,在Python脚本文件中使用import语句导入这两个模块。 import requests from bs4 import Beautifu…

    python 2023年5月19日
    00
  • Python实现按中文排序的方法示例

    下面我会详细讲解“Python实现按中文排序的方法示例”的完整攻略,包括读取中文字符的方式、安装中文字符排序库、使用中文字符排序库的方法以及两个排序的示例。 读取中文字符 由于中文字符在计算机中的表示方法并不是直接的字符,而是Unicode编码的形式,因此在读取中文字符之前需要先将其转化为Unicode编码。可以采用以下方式读取中文字符: chinese_s…

    python 2023年5月20日
    00
  • Python求平面内点到直线距离的实现

    Python求平面内点到直线距离的实现 什么是点到直线距离? 点到直线距离指的是平面内一个点到直线的最短距离。 求解点到直线距离的公式 设平面内一点$P(x_0,y_0)$,直线方程为$Ax+By+C=0$,点$P$到直线距离为$d$,则有如下公式: $$d = \frac {|Ax_0 + By_0 +C|} {\sqrt{A^2+B^2}}$$ Pyth…

    python 2023年6月3日
    00
  • Python程序笔记20230305

    n 以内能被 m 整除的数的和、积 最初版本 计算指定数字内所有偶数的和 n = int(input(“请输入指定的n:”)) i = 0 mysum = 0 while i <= n: if i % 2 == 0: mysum = mysum + i i = i + 1 print(f”{n}以内的所有偶数的和是{mysum}”) print(“{0…

    python 2023年4月17日
    00
合作推广
合作推广
分享本页
返回顶部