PIL的Image学习
transpose和rotate
- transpose
1 | from PIL import Image |
- rotate
1 | from PIL import Image |
convert函数
参数为mode(图像模式)。这是一个字符串,指定图像使用的像素格式。典型值为“1”,“L”,“RGB”或“CMYK”。
1 | img = img.convert("1") |
1
(1-bit pixels, black and white, stored with one pixel per byte)L
(8-bit pixels, black and white)P
(8-bit pixels, mapped to any other mode using a color palette)RGB
(3x8-bit pixels, true color)RGBA
(4x8-bit pixels, true color with transparency mask)CMYK
(4x8-bit pixels, color separation)YCbCr
(3x8-bit pixels, color video format)LAB
(3x8-bit pixels, the Lab color space)HSV
(3x8-bit pixels, Hue, Saturation, Value color space)I
(32-bit signed integer pixels)F
(32-bit floating point pixels)
PIL image与np.array互转
1. PIL image转换成array
img = np.asarray(image)
或img=np.array(image)
需要注意的是,如果出现read-only错误,并不是转换的错误,一般是你读取的图片的时候,默认选择的是"r","rb"模式有关。
修正的办法: 手动修改图片的读取状态
img.flags.writeable = True # 将数组改为读写模式
2. array转换成image
方法1
1 | from PIL import Image |
方法2
1 | import cv2 |
方法3
matlab
1 | img=imread('output.png') |
Numpy将二维数组添加到空数组
1 | a=np.empty(shape=[0,3], dtype=np.int32) |
reshape函数是numpy中一个很常用的函数,作用是在不改变矩阵的数值的前提下修改矩阵的形状。
1.简单使用
1 | y = np.reshape([[1,2],[3,4]],(1,4)) |
2.使用缺省值-1
缺省值-1代表我不知道要给行(或者列)设置为几,reshape函数会根据原矩阵的形状自动调整。
1 | y = np.reshape([[1,2],[3,4]],(4,-1)) |
1 | import PIL.Image as Image |
Author: Mrli
Link: https://nymrli.top/2019/11/26/PIL的Image笔记/
Copyright: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.