PIL.Image、cv2的img、bytes相互转换
发布日期:2025-05-05 08:13:27
浏览次数:2
分类:精选文章
本文共 1175 字,大约阅读时间需要 3 分钟。
PIL.Image 与 OpenCV 的图像与字节数据转换指南
1. bytes 转换为 PIL.Image
from io import BytesIOfrom PIL import Image# 读取文件内容with open("test_for_classification.png", "rb") as f: file = f.read()# 将 bytes 转换为 PIL.Imageimg = Image.open(BytesIO(file))img.show() # 查看图片 2. PIL.Image 转换为 bytes
from PIL import Imagefrom io import BytesIO# 读取图片文件img = Image.open('test.jpg', mode='r')# 将图片保存为 bytes 格式img_bytes = BytesIO()img.save(img_bytes, format='JPEG')# 获取字节数据img_bytes = img_bytes.getvalue() 3. OpenCV 图像转换为 bytes
import cv2# 假设 img_numpy 是一个 OpenCV 图像数组_, img_encode = cv2.imencode('.jpg', img_numpy)# 获取字节数据img_bytes = img_encode.tobytes() 4. bytes 转换为 OpenCV 图像
import numpy as npimport cv2# 将字节数据转换为 OpenCV 图像数组img_buffer_numpy = np.frombuffer(img_bytes, dtype=np.uint8)# 解码字节数据为 OpenCV 图像img_numpy = cv2.imdecode(img_buffer_numpy, 1)
5. PIL 转 OpenCV 图像
from PIL import Imageimport cv2# 读取 PIL 图像img = Image.open("test.jpg")# 将 PIL 图像转换为 OpenCV 格式(BGR)img = cv2.cvtColor(np.asarray(img), cv2.COLOR_RGB2BGR) 6. OpenCV 转换为 PIL 图像
import cv2from PIL import Image# 读取 OpenCV 图像img = cv2.imread("test.jpg")# 将 OpenCV 图像转换为 PIL 格式(RGB)img = Image.fromarray(cv2.cvtColor(img, cv2.COLOR_BGR2RGB)) 发表评论
最新留言
表示我来过!
[***.240.166.169]2026年06月05日 15时29分03秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
php redis(2)
2023-02-27
PHP Redis分布式锁
2023-02-27
php session超时时间_php怎么设置session超时时间
2023-02-27
PHP SOAP模块的使用方法:NON-WSDL模式
2023-02-27
php Socket通信
2023-02-27
PHP SPL标准库-迭代器
2023-02-27
PHP Static延迟静态绑定
2023-02-27
php zookeeper实现分布式锁
2023-02-27
PHP 使用 $_SERVER['PHP_SELF'] 获取当前页面地址及其安全性问题
2023-02-27
php 反射
2023-02-27
PHP 学习笔记 (四)
2023-02-28
PHP 实现N阶矩阵相乘
2023-02-28
php 延迟静态绑定static关键字
2023-02-28
Redis入门
2023-02-28
PHP 截取字符串乱码的解决方案
2023-02-28
php 接口类与抽象类的实际作用
2023-02-28
PHP 插入排序 -- 折半查找
2023-02-28
PHP 支持8种基本的数据类型
2023-02-28
php 放大镜,放大镜放大图片效果
2023-02-28