学习自: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. vue和react 相似和区别

    相似之处 他们都是JavaScript的UI框架,专注于创造前端的富应用 不同于早期的JavaScript框架"功能齐全",Reat与Vue只有框架的骨架,其他的功能如路由.状态管 ...

  2. ORACLE数据库误操作DELETE并且提交数据库之后如何恢复被删除的数据

    一:根据时间来恢复: 1.查询数据库当前时间() select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; 2.查询删除数据时间点之前的数据 ...

  3. 中文分词,自然语言处理器NLP。 六月份版本已上线。

    一,  没有对比,就没有伤害,我们分词的优势在哪里?走一波测试. 跑一下CaCl2,看看效果. 二   想要分什么词汇,自己自定义即可. 目前每个月都会出一个新的版本,主要是和金融相关的词汇. 这是6 ...

  4. 如何使用 numpy 和 pytorch 快速计算 IOU

    前言 在目标检测中用交并比(Interection-over-unio,简称 IOU)来衡量两个边界框之间的重叠程度,下面就使用 numpy 和 pytorch 两种框架的矢量计算方式来快速计算各种情 ...

  5. CNN-卷积神经网络简单入门(2)

    在上篇中,对卷积神经网络的卷积层以及池化层模块进行了简单的介绍,接下来将对卷积神经网络的整个运作流程进行分析,以便对CNN有个总体上的认知和掌握. 如下图,卷积神经网络要完成对图片数字的识别任务.网络 ...

  6. JQuery扩展方法实现Form表单与Json互相转换

    1.把表单转换出json对象 //把表单转换出json对象 $.fn.toJson = function () { var self = this, json = {}, push_counters ...

  7. JAVA多线程学习十七 - 面试题

    前面针对多线程相关知识点进行了学习,那么我们来来看看常见的面试题: 1. 空中网面试题1 package com.kongzhongwang.interview; import java.util.c ...

  8. Android动态加载布局之LayoutInflater【转】

    万分感谢大佬:https://www.jianshu.com/p/6a235ba5ee17 深入了解View<一>之Android LayoutInfalter原理分析 下文为:Layou ...

  9. 跨域 CORS 详解 (转)

    CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing). 它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从 ...

  10. Android 高德地图使用小记

    感谢大佬:https://www.cnblogs.com/devilmaycry812839668/p/8727569.html 高德地图 Android编程中 如何设置使 标记 marker 能够被 ...