第三章 解析python中opencv,matpoltlib与pillow对JPG和PNG读取和写入(工具)

简介

特性 OpenCV Matplotlib Pillow
文件读写 cv2.imread/imwrite plt.imread/imsave Image.open/save
颜色空间 BGR RGB RGB
透明度支持 仅 PNG PNG 和 JPG PNG 和 JPG
压缩 有损 无损 有损/无损
适用场景 图像处理/分析 图像显示/可视化 图像处理/编辑

opencv

python 复制代码
import cv2

# 打开PNG图片文件
png_image = cv2.imread('image.png', cv2.IMREAD_UNCHANGED)  # 使用cv2.IMREAD_UNCHANGED标志以保持透明度信息
# 打开JPG图片文件
jpg_image = cv2.imread('image.jpg')

# 创建新的图像(例如:创建一个黑色的200x200图片)
import numpy as np
new_image = np.zeros((200, 200, 3), dtype=np.uint8)  # 创建一个全为黑色的图像

# 保存PNG图像
cv2.imwrite('new_image.png', new_image)  
# 保存JPG图像
cv2.imwrite('new_image.jpg', new_image)

matplotlib

python 复制代码
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np

# 打开PNG图片文件
png_image = mpimg.imread('image.png')
plt.imshow(png_image)
plt.axis('off')  # 关闭坐标轴
plt.savefig('saved_image.png', bbox_inches='tight', pad_inches=0)  # 保存为PNG格式

# 打开JPG图片文件
jpg_image = mpimg.imread('image.jpg')
plt.imshow(jpg_image)
plt.axis('off')  # 关闭坐标轴
plt.savefig('saved_image.jpg', bbox_inches='tight', pad_inches=0)  # 保存为JPG格式

# 创建一个新的图像(例如:创建一个红色的200x200图像)
new_image = np.zeros((200, 200, 3), dtype=np.uint8)
new_image[:, :] = [255, 0, 0]  # 将新图像设为红色

# 保存新图像为PNG格式
plt.imshow(new_image)
plt.axis('off')  # 关闭坐标轴
plt.savefig('new_image.png', bbox_inches='tight', pad_inches=0)

# 保存新图像为JPG格式
plt.imshow(new_image)
plt.axis('off')  # 关闭坐标轴
plt.savefig('new_image.jpg', bbox_inches='tight', pad_inches=0)

pillow

python 复制代码
from PIL import Image

# 打开PNG图片文件
png_image = Image.open('image.png')

# 打开JPG图片文件
jpg_image = Image.open('image.jpg')

# 创建新的图像(例如:创建一个红色的200x200图像)
new_image = Image.new('RGB', (200, 200), color = (255, 0, 0))

# 保存PNG图像
new_image.save('new_image.png')

# 保存JPG图像
new_image.save('new_image.jpg')
相关推荐
feifeikon19 分钟前
大模型GUI系列论文阅读 DAY4续:《Large Language Model Agent for Fake News Detection》
论文阅读·人工智能·语言模型
feifeikon27 分钟前
图神经网络系列论文阅读DAY1:《Predicting Tweet Engagement with Graph Neural Networks》
论文阅读·人工智能·神经网络
ZStack开发者社区2 小时前
AI应用、轻量云、虚拟化|云轴科技ZStack参编金融行标与报告
人工智能·科技·金融
真想骂*4 小时前
人工智能如何重塑音频、视觉及多模态领域的应用格局
人工智能·音视频
漫漫进阶路5 小时前
VS C++ 配置OPENCV环境
开发语言·c++·opencv
bohu835 小时前
亚博microros小车-原生ubuntu支持系列:8-脸部检测与人脸特效
linux·opencv·ubuntu·dlib·microros·亚博
赛丽曼6 小时前
机器学习-K近邻算法
人工智能·机器学习·近邻算法
啊波次得饿佛哥8 小时前
7. 计算机视觉
人工智能·计算机视觉·视觉检测
XianxinMao9 小时前
RLHF技术应用探析:从安全任务到高阶能力提升
人工智能·python·算法
Swift社区9 小时前
【分布式日志篇】从工具选型到实战部署:全面解析日志采集与管理路径
人工智能·spring boot·分布式