最近对大家都在猜测《青春有你3》会怎么播出来,有人说会全部打码,又有人说会实现镜面反转。
今天呢结果也已经出来了,青3选择了打码,也是辛苦后期了,那么想给大家分享使用Python对图片如何进行处理。
图像处理工具包PIL(Python Image Library)能够实现基本的图像处理功能,如:改变图像大小,旋转图像,图像格式转换,色场空间转换,图像增强,直方图处理,插值和滤波等等。
PIL中所涉及的基本概念有如下几个:通道(bands)、模式(mode)、尺寸(size)、坐标系统(coordinate system)、调色板(palette)、信息(info)和滤波器(filters)。
1、通道
每张图片都是由一个。或者多个数据通道构成。PIL允许在单张图片中合成相同维数和深度的多个通道。
以RGB图像为例,每张图片都是由三个数据通道构成,分别为R、G和B通道。而对于灰度图像,则只有一个通道。
2、模式
图像的模式定义了图像的类型和像素的位宽。当前支持如下模式:
1:1位像素,表示黑和白,但是存储的时候每个像素存储为8bit。
L:8位像素,表示黑和白。
P:8位像素,使用调色板映射到其他模式。
RGB:3x8位像素,为真彩色。
RGBA:4x8位像素,有透明通道的真彩色。
CMYK:4x8位像素,颜色分离。
YCbCr:3x8位像素,彩色视频格式。
I:32位整型像素。
F:32位浮点型像素。
PIL也支持一些特殊的模式,包括RGBX(有padding的真彩色)和RGBa(有自左乘alpha的真彩色)。
3、尺寸
通过size属性可以获取图片的尺寸。这是一个二元组,包含水平和垂直方向上的像素数。
4、坐标系统
PIL使用笛卡尔像素坐标系统,坐标(0,0)位于左上角。注意:坐标值表示像素的角;位于坐标(0,0)处的像素的中心实际上位于(0.5,0.5)。
坐标经常用于二元组(x,y)。长方形则表示为四元组,前面是左上角坐标。例如,一个覆盖800x600的像素图像的长方形表示为(0,0,800,600)。
5、调色板
调色板模式 (“P”)使用一个颜色调色板为每个像素定义具体的颜色值。
6、信息
使用info属性可以为一张图片添加一些辅助信息。这个是字典对象。加载和保存图像文件时,多少信息需要处理取决于文件格式。
7、滤波器
对于将多个输入像素映射为一个输出像素的几何操作,PIL提供了4个不同的采样滤波器:
1、NEAREST:最近滤波。从输入图像中选取最近的像素作为输出像素。它忽略了所有其他的像素。
2、BILINEAR:双线性滤波。在输入图像的2x2矩阵上进行线性插值。注意:PIL的当前版本,做下采样时该滤波器使用了固定输入模板。
3、BICUBIC:双立方滤波。在输入图像的4x4矩阵上进行立方插值。注意:PIL的当前版本,做下采样时该滤波器使用了固定输入模板。
4、ANTIALIAS:平滑滤波。这是PIL 1.1.3版本中新的滤波器。对所有可以影响输出像素的输入像素进行高质量的重采样滤波,以计算输出像素值。在当前的PIL版本中,这个滤波器只用于改变尺寸和缩略图方法。
注意:在当前的PIL版本中,ANTIALIAS滤波器是下采样(例如,将一个大的图像转换为小图)时唯一正确的滤波器。BILIEAR和BICUBIC滤波器使用固定的输入模板,用于固定比例的几何变换和上采样是最好的。
PIL模块中常用的最重要的类是Image类,需要在程序中引入Image。Image常用的方法有:
Open():打开一张图片,方法内需传入图片的名称,即:路径+文件名.后缀名,例如:Image.open(“pic14.jpg”),open()方法会返回一个Image对象,我们可以使用Image的方法来获取该对象的属性。
对象名.format():获取图像的格式,如:jpg,jpeg,ppm等。
对象名.size:获取图像的大小尺寸
对象名.mode:获取图像的颜色属性,灰度图或RGB
对象名.show():将图片显示出来
对象名.save(arg1,arg2):将图片保存,arg1是图片保存的名称,即:路径+文件名,arg2是图片保存的格式。
对象名.crop(arg):截取图片的某一部分,参数arg是一个元组类型的变量,形式为:(left,upper,right,lower)。在PIL的坐标系中,图片的左上角是坐标系的原点。这里的(left,upper,right,lower)代表的是截取部分的坐标,用(left,upper)坐标表示截取区域的左上角点,用(right,lower)坐标代表截取区域的右下角点,这样的话,区域的位置和大小就都确定了。
对象名.split():将图片的几个通道分开,例如:r,g,b=im.split()
Image.merge(“RGB”,(b,g,r)):将图片的通道分开后重新组合得到一张新的图片。
实现代码:from PIL import Image, ImageOps
im = Image.open('tupian.png')
# 做镜面转换
im_mirror = ImageOps.mirror(im)
# 保存镜像图片
im_mirror.save('tupian_mirrow.png')
注意:代码和图片要在同一个文件夹下,或者自己加上路径。
在这里还是要推荐下我自己建的Python学习群:645415122,群里都是学Python的,如果你想学或者正在学习Python ,欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2021最新的Python进阶资料和零基础教学,欢迎进阶中和对Python感兴趣的小伙伴加入!
**以下内容无用,为本篇博客被搜索引擎抓取使用
(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)
python 是干什么的 零基础学 python 要多久 python 为什么叫爬虫
python 爬虫菜鸟教程 python 爬虫万能代码 python 爬虫怎么挣钱
python 基础教程 网络爬虫 python python 爬虫经典例子
python 爬虫
(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)( ̄︶ ̄)( ̄︶ ̄)
以上内容无用,为本篇博客被搜索引擎抓取使用