Python 图片的读写
auther: Haoyu
- opencv
- PIL(pillow)
- matplotlib.image
- skimage
opencv
- 读取图片
1 | import cv |
- 图片读出的格式
opencv 读取的格式为BGR,不是传统的RGB格式,所以这里需要转换为平常的RBG, 且是,Height x Weight x Channel, 但是一般深度学习的图片矩阵排列方式为Channel x Height x Weight
1 | img = cv2.cvColor(img, cv2.COLOR_BGR2RGB) |
- 归一化
1 | img_norm = img.astype('float') / 255.0 # 一定先转换为float |
- 存储
1 | cv2.imwrite('saveimage.jpg', img_norm) # 发现图片是黑色的 |
PIL(pillow)
- 读取图片
1 | from PIL import Image |
- 图片读出格式
PIL 读出的图片是特殊格式是 JPEG, 需要用numpy来转换为矩阵,是RGB排列
img_arr = np.array(img)
- 存储
1 | img_new = Image.fromarray(img_arr) |
matplotlib
- 读取图片
1 | import matplotlib.pyplot as plt |
- 图片读出格式
本身读出就已经是数组格式了,不需要使用numpy来转换且为RGB排列
skimage
- 读取存储图片
1 | from skimage import io |
- 图片读出格式
也是读出的是数组,numpy array格式,RGB排列