运用skimage.transform进行图像处理后,发现像素数值在-1 与1 之间,然后减去数据RGB的均值(100左右),不可行。
1. PIL读取,旋转,缩放的操作
于是采用命令
- import matplotlib.pyplot as plt
- import numpy as np
- from PIL import Image
-
- img = Image.open('lena.png') # 读取的图像显示的<matplotlib.image.AxesImage object at 0x7f9f0c60f7f0>
- img.show()
- img.format
-
- region = img.transpose(Image.ROTATE_180) #翻转
- out = img.resize((128, 128)) # 改变大小
- out1 = img.rotate(45) #旋转
- plt.imshow(img) # 显示
-
- mean=np.array([104., 117., 124.]) #均值
- np.shape(img)
- img1 -= mean
- plt.imshow(img1)
-
2.PIL, matplotlib 读取图像的差别
- import matplotlib.pyplot as plt
- mport numpy as np
- from PIL import Image
-
- img = Image.open('lena.png') # 读取的图像显示的<matplotlib.image.AxesImage object at 0x7f9f0c60f7f0>
-
- lena = mpimg.imread('lena.png') #直接显示像素的矩阵形式
-
- #img 显示成矩阵形式的操作
- img1 = np.array(img)
3.在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片。本人偏爱 matpoltlib,因为它的语法更像 matlab。详细讲解https://www.cdsy.xyz/computer/programme/Python/230130/cd39912.html