学习自:PIL官方文档——Concepts

写在最前: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(二)——相关概念的更多相关文章

  1. 有关python下二维码识别用法及识别率对比分析

    最近项目中用到二维码图片识别,在python下二维码识别,目前主要有三个模块:zbar .zbarlight.zxing. 1.三个模块的用法: #-*-coding=utf-8-*- import ...

  2. Python PIL

    Python PIL PIL (Python Image Library) 库是Python 语言的一个第三方库,PIL库支持图像存储.显示和处理,能够处理几乎所有格式的图片. 一.PIL库简介 1. ...

  3. python PIL 图像处理操作

    python PIL 图像处理 # 导入Image库 import Image # 读取图片 im = Image.open("1234.jpg") # 显示图片 im.show( ...

  4. 用python生成二维码

    Python生成二维码,可以使用qrcode模块, github地址 我是搬运工 首先安装, 因为打算生成好再展示出来,所以用到Pillow模块 pip install qrcode pip inst ...

  5. Python 实现二维码生成和识别

    今天突然想给自己自己做个头像,然后还是二维码的形式,这样只要扫一扫就可以访问我的主页.然后就开始自己的苦逼之路... 其实实现二维码java,c#,C++等都可以实现:由于自己正在学python,所以 ...

  6. python PIL相关操作

    项目中需要用python生成二维码,这里记录一下相关PIL相关操作. RGBA问题: 需要将图片A粘贴到图片B上,之前没有注意透明度问题,A的背景是透明的,粘贴到B上后,A的周围是黑的.后来才发现是P ...

  7. python PIL 图像处理

    python PIL 图像处理 This blog is from: https://www.jianshu.com/p/e8d058767dfa Image读出来的是PIL的类型,而skimage. ...

  8. Python,PIL压缩裁剪图片

    自己写了用来压缩 DC 照片的,批量处理整目录文件,非常方便.需要安装 PIL #!/usr/bin/env python import Image import os import os.path ...

  9. Python 基础 二

    Python 基础 二 今天对昨天学习的Python基础知识进行总结,学而不思则惘,思而不学则殆! 一.先对昨天学习的三大循环的使用情况进行总结: 1.while循环的本质就是让计算机在满足某一条件的 ...

  10. 初学Python(二)——数组

    初学Python(二)——数组 初学Python,主要整理一些学习到的知识点,这次是数组. # -*- coding:utf-8 -*- list = [2.0,3.0,4.0] #计算list长度 ...

随机推荐

  1. zabbix_proxy3.4安装

    server ip:172.16.2.116 proxy ip:172.16.2.241 1.创建proxy数据库,proxy用户 mysql> create database zabbix_p ...

  2. threejs - src - WebGLProgram是如何组建Shader的?

    threejs - src - WebGLProgram是如何组建Shader的? WebGLProgram的构建 WebGLProgram构建的时候需要的参数如下: // \param render ...

  3. ESP32S2小项目-FM-网络时钟/电台-Arduino开发环境

    ESP32S2小项目,FM,网络时钟/电台,Arduino开发环境 效果展示 @ 目录 ESP32S2小项目,FM,网络时钟/电台,Arduino开发环境 效果展示 开机动画: 网络时钟: FM模块: ...

  4. python 小兵(12)模块1

    序列化 我们今天学习下序列化,什么是序列化呢? 将原本的字典.列表等内容转换成一个字符串的过程就叫做序列化. 为什么要有序列化模块: 比如,我们在python代码中计算的一个数据需要给另外一段程序使用 ...

  5. plsql 触发器介绍 语句级别触发器、行级别触发器。

    /* 分类: 1.DDL触发器 执行create,alter,drop操作时,会激活的触发器 2.DML触发器 执行增.删除.修改时,激活的触发器 3.系统事件触发器 执行特定的系统事件时(启动.加载 ...

  6. 做开源界的MATLAB,PyMiner 需要更多热爱开源的你加入

    MATLAB 和 Mathematica.Maple 并称为三大数学软件.它在数学类科技应用软件中在数值计算方面首屈一指.MATLAB 可以进行矩阵运算.绘制函数和数据.实现算法.创建用户界面.连接其 ...

  7. 从服务端生成Excel电子表格(GcExcel + SpreadJS)

    在服务端生成Excel电子表格,除了使用 Node.js + SpreadJS 外,葡萄城官方推荐使用 SpreadJS + GcExcel.该方案不仅能够解决批量绑定数据源并导出Excel.批量修改 ...

  8. 后缀自动机 (SAM)

    后缀自动机 定义 定义 SAM 为一个有限状态自动机,接受且仅接受 \(S\) 的一个后缀. 同时,SAM 是这样的自动机中最小的那个,其中状态数至多为 \(2n - 1\),转移数至多为 \(3n ...

  9. CF Round #687 Div2 简要题解

    题面 A 可以发现,最远的几个人一定是 \((1, 1), (1, m), (n, 1), (n, m)\) 中的一个,直接计算即可. B 注意到颜色数量很少,直接暴力枚举最终的颜色后模拟即可. C ...

  10. RocketMQ在Windows和Linux下的安装

    windows下的RocketMQ的安装 鉴于Quick Start,选择单mater模式,环境简单: win10 64 jdk1.8 maven 3.5.4 Git rocketMQ安装版本 4.4 ...