图像基础
1、 图像读取与创建
im = open(‘路径’)
2、
常见mode格式:
1--------------------------(1位像素,黑白,每字节一个像素存储)
L --------------------------(8位像素,黑白)
P --------------------------(8位像素,使用调色板映射到任何其他模式)
RGB----------------------(3x8位像素,真彩色)
RGBA--------------------(4x8位像素,带透明度掩模的真彩色)
CMYK--------------------(4x8位像素,分色)
YCbCr--------------------(3x8位像素,彩色视频格式)
I----------------------------(32位有符号整数像素)
F---------------------------(32位浮点像素)
可查阅 https://blog.csdn.net/icamera0/article/details/50843172
3、
注:
- 1、save可直接写带扩展名的文件名
- 2、thumbnail只能缩不能放,放按原图处理
例子
另外,想任意改变大小
#改变大小
out = im.resize((128, 128))
4、 image中其他常用函数
例子:通道颜色变换(图像由RGB三原色构成)
im = Image.open(路径)
r,g,b = im.spilt()
#处理单个值
newr = r.point(lambda i:i<200)
#合成新图像
om = Image.merge(im.mode,(newr,g,b))
on.save('new.jpg')
图像处理
对原图进行处理,可以使用filter()方法实现。
函数里面的参数也比较多
大家可以参考博文
https://blog.csdn.net/icamera0/article/details/50708888/中和
https://blog.csdn.net/weixin_44194246/article/details/103455018的内容。
另外
图片裁剪
有时候我们需要对图片进行裁剪,可以使用crop(box)函数,其中代表左上角和右下角的坐标。
box = (0, 0, 0, 0)#要剪裁的大小 左 上 右 下
region = im.crop(box)
图片旋转
rotate(angle)可以实现对图片的旋转,angle标识逆时针旋转图片的度数?
out = im.rotate(45)
转换格式
Image.open("文件名.jpg").save("image.png")
上述部分代码实现可参考
https://blog.csdn.net/m1090760001/article/details/103283313
镜像转换等更多操作
可参考
https://blog.csdn.net/mouday/article/details/81938494