简介
特性 | 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')