简介
 
| 特性 | OpenCV | Matplotlib | Pillow | 
|---|
| 文件读写 | cv2.imread/imwrite | plt.imread/imsave | Image.open/save | 
| 颜色空间 | BGR | RGB | RGB | 
| 透明度支持 | 仅 PNG | PNG 和 JPG | PNG 和 JPG | 
| 压缩 | 有损 | 无损 | 有损/无损 | 
| 适用场景 | 图像处理/分析 | 图像显示/可视化 | 图像处理/编辑 | 
 
opencv
 
import cv2
png_image = cv2.imread('image.png', cv2.IMREAD_UNCHANGED)  
jpg_image = cv2.imread('image.jpg')
import numpy as np
new_image = np.zeros((200, 200, 3), dtype=np.uint8)  
cv2.imwrite('new_image.png', new_image)  
cv2.imwrite('new_image.jpg', new_image)
 
matplotlib
 
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as np
png_image = mpimg.imread('image.png')
plt.imshow(png_image)
plt.axis('off')  
plt.savefig('saved_image.png', bbox_inches='tight', pad_inches=0)  
jpg_image = mpimg.imread('image.jpg')
plt.imshow(jpg_image)
plt.axis('off')  
plt.savefig('saved_image.jpg', bbox_inches='tight', pad_inches=0)  
new_image = np.zeros((200, 200, 3), dtype=np.uint8)
new_image[:, :] = [255, 0, 0]  
plt.imshow(new_image)
plt.axis('off')  
plt.savefig('new_image.png', bbox_inches='tight', pad_inches=0)
plt.imshow(new_image)
plt.axis('off')  
plt.savefig('new_image.jpg', bbox_inches='tight', pad_inches=0)
 
pillow
 
from PIL import Image
png_image = Image.open('image.png')
jpg_image = Image.open('image.jpg')
new_image = Image.new('RGB', (200, 200), color = (255, 0, 0))
new_image.save('new_image.png')
new_image.save('new_image.jpg')