Python:PIL(二)——相关概念
写在最前:PIL只处理栅格(Raster)数据
1、Bands
一幅图像由一个或多个波段的数据组成。PIL允许我们在单幅图像中存储多个波段,前提是它们有相同的维度。例如,一幅PNG图像包含了R、G、B、A波段,RGB不多说了,A是alpha透明度。在分析这种图像时,通常将每个像素点的不同波段值分开考虑。
为了得到一幅图像的bands数量和名字,可以用getbands()方法。
2、Modes
一幅图像的Mode是一个个String,它们标识了图像类型、像素深度等信息。目前(截止2021.4)支持的Modes有:
| Mode | 说明 |
| 1 | 黑白图像(二值图像),每个像素点只有0、1两个值 |
| L | 8-bit灰度图像 |
| P | 8-bit像素值,需要和调色板(palette)配合使用 |
| RGB | 3*8-bit,真彩色 |
| RGBA | 4*8-bit,真彩色+透明度 |
| CMYK | 4*8-bit,印刷色 |
| YCbCr | |
| LAB | 3*8;L*a*b颜色空间 |
| HSV | 3*8;色调、饱和度、亮度 |
| I | 32bit;有符号整型像素值 |
| F | 32bit;浮点像素值 |
3、一些图片基本项
| Size | 属性size;图像尺寸,是一个有2个元素的tuple |
| Info | 信息Info;图像信息 |
| Orientation | 图像方位 |
| Palette | 调色板 |
4、滤波器
| 滤波器(使用方式PIL.Image.XXX) | 说明 | 适用 |
| NEAREST | 最近邻 | |
| BOX | 每个像素都向目标像素贡献了相同权重; |
resize() thumbnail() |
| BILINEAR |
双线性插值法; 参与计算的像素为输入图像中的目标像素附近2*2的像素 |
|
| HAMMING | 相比BILINEAR更锐化,相比BOX无错位 |
resize() thumbnail() |
| BICUBIC |
双三次插值法; 参与计算的像素为原图像中目标像素附近4*4的像素 |
|
| LANCZOS | Lanczos滤波器 |
resize() thumbnail() |
不同滤波器间的比较

Python:PIL(二)——相关概念的更多相关文章
- 有关python下二维码识别用法及识别率对比分析
最近项目中用到二维码图片识别,在python下二维码识别,目前主要有三个模块:zbar .zbarlight.zxing. 1.三个模块的用法: #-*-coding=utf-8-*- import ...
- Python PIL
Python PIL PIL (Python Image Library) 库是Python 语言的一个第三方库,PIL库支持图像存储.显示和处理,能够处理几乎所有格式的图片. 一.PIL库简介 1. ...
- python PIL 图像处理操作
python PIL 图像处理 # 导入Image库 import Image # 读取图片 im = Image.open("1234.jpg") # 显示图片 im.show( ...
- 用python生成二维码
Python生成二维码,可以使用qrcode模块, github地址 我是搬运工 首先安装, 因为打算生成好再展示出来,所以用到Pillow模块 pip install qrcode pip inst ...
- Python 实现二维码生成和识别
今天突然想给自己自己做个头像,然后还是二维码的形式,这样只要扫一扫就可以访问我的主页.然后就开始自己的苦逼之路... 其实实现二维码java,c#,C++等都可以实现:由于自己正在学python,所以 ...
- python PIL相关操作
项目中需要用python生成二维码,这里记录一下相关PIL相关操作. RGBA问题: 需要将图片A粘贴到图片B上,之前没有注意透明度问题,A的背景是透明的,粘贴到B上后,A的周围是黑的.后来才发现是P ...
- python PIL 图像处理
python PIL 图像处理 This blog is from: https://www.jianshu.com/p/e8d058767dfa Image读出来的是PIL的类型,而skimage. ...
- Python,PIL压缩裁剪图片
自己写了用来压缩 DC 照片的,批量处理整目录文件,非常方便.需要安装 PIL #!/usr/bin/env python import Image import os import os.path ...
- Python 基础 二
Python 基础 二 今天对昨天学习的Python基础知识进行总结,学而不思则惘,思而不学则殆! 一.先对昨天学习的三大循环的使用情况进行总结: 1.while循环的本质就是让计算机在满足某一条件的 ...
- 初学Python(二)——数组
初学Python(二)——数组 初学Python,主要整理一些学习到的知识点,这次是数组. # -*- coding:utf-8 -*- list = [2.0,3.0,4.0] #计算list长度 ...
随机推荐
- 图文并茂理解iptables
原文地址:http://www.zsythink.net/archives/1199 以下是转载内容: iptables详解:图文并茂理解iptables | 朱双印博客 这篇文章会尽量以通俗易懂的方 ...
- python语法缩进
1.python会根据缩进来判断代码行和前一句代码行之间的关系 2.for循环后一定要缩进,for循环后面的冒号代表告诉python,下面是代码行缩进的第一行
- python 单元测试 执行测试
1.在unittest框架中执行测试用例: if __name__ == "__main__": unittest.main() # unittest框架会把以test_开头的实例 ...
- 计算机网络再次整理————tcp例子[五]
前言 本文介绍一些tcp的例子,然后不断完善一下. 正文 服务端: // See https://aka.ms/new-console-template for more information us ...
- Antd组件Table树型多选全选问题
组件库antd里面的树型选择不能做到勾选父组件然后一起勾选子组件情况,我也不知道是组件库的问题还是原本设计就是这样 刚好组件库存在rowselection的配置项,既然存在拓展方法,又遇到需求,那么就 ...
- Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile
前言 IDEA(2020)引入Maven进行依赖管理,无法从私服上下载jar包 报如下错误 Failed to execute goal org.apache.maven.plugins:maven- ...
- Java基础之Scanner类中next()与nextLine()方法的区别
java中使用Scanner类实现数据输入十分简单方便,Scanner类中next()与nextLine()都可以实现字符串String的获取,所以我们会纠结二者之间的区别. 其实next()与nex ...
- Td 内容不换行,超过部分自动截断,用...表示
转载请注明来源:https://www.cnblogs.com/hookjc/ <table width="200px" style="table-layout:f ...
- web项目获取全路径、端口、项目名等
感谢大佬:https://blog.csdn.net/u010180031/article/details/52369537 request.getSchema(),返回的是当前连接使用的协议,一般应 ...
- MySQL server has gone away 异常
原因 一种可能是发送的SQL语句太长,以致超过了max_allowed_packet的大小,如果是这种原因,你只要修改my.cnf,加大max_allowed_packet的值即可. 还有一种可能是因 ...