第三章 解析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')
相关推荐
池央31 分钟前
AI性能极致体验:通过阿里云平台高效调用满血版DeepSeek-R1模型
人工智能·阿里云·云计算
我们的五年32 分钟前
DeepSeek 和 ChatGPT 在特定任务中的表现:逻辑推理与创意生成
人工智能·chatgpt·ai作画·deepseek
Yan-英杰33 分钟前
百度搜索和文心智能体接入DeepSeek满血版——AI搜索的新纪元
图像处理·人工智能·python·深度学习·deepseek
Fuweizn35 分钟前
富唯智能可重构柔性装配产线:以智能协同赋能制造业升级
人工智能·智能机器人·复合机器人
taoqick3 小时前
对PosWiseFFN的改进: MoE、PKM、UltraMem
人工智能·pytorch·深度学习
suibian52353 小时前
AI时代:前端开发的职业发展路径拓宽
前端·人工智能
预测模型的开发与应用研究4 小时前
数据分析的AI+流程(个人经验)
人工智能·数据挖掘·数据分析
源大模型4 小时前
OS-Genesis:基于逆向任务合成的 GUI 代理轨迹自动化生成
人工智能·gpt·智能体
PowerBI学谦5 小时前
Python in Excel高级分析:一键RFM分析
大数据·人工智能·pandas
运维开发王义杰6 小时前
AI: Unsloth + Llama 3 微调实践,基于Colab
人工智能·llama