1.python3已经用Pillow代替PIL,文件要close,图像要save

2.Image是PIL图像处理中的模块

from PIL import Image

2.1 Image.open()

from PIL import Image

im= Image.open("22.jpg")#当前工作目录相对路径,也可绝对路径

im.show() #win的懒操作

2.2 im.save(“223.png”)图像保存

2.3im的基本信息

(1) im.format图像格式

(JPEG)

(2)im.size图像大小

返回(width, height)

(3)im.mode图像模式

mode

含义

1

黑白1位像素

L

黑白8位像素

P

调色板映射的8位像素

RGB

真彩3*8像素

RGBA

真彩透明通道4*8

CMYK

颜色隔离4*8

YCbCr

色彩视频3*8

I

32整型

F

32浮点

(4)im.info

返回储存图像的相关数据字典

2.4im.convert()转换

1.p模式im.convert(‘P’,option)

(1)Dither 控制颜色抖动,默认FLOYDSTEINBERG,与邻近的像素一起承担错误。不使用则赋值为NONE。

(2)Palette 控制调色板的产生。默认是WEB,这是标准的216色的“web palette”。要使用优化的调色板,则赋值为ADAPTIVE。

(3)Color:palette为ADAPTIVE时,控制用于调色板的颜色数目。默认是最大值,256种颜色

2.im.convert(mode,matrix)

mode:L或者RGB

matrix:4或者16元组

RGB转化为L的例子:

rgb2xyz = (0.412453,0.357580, 0.180423, 0,

0.212671,0.715160, 0.072169, 0,

0.019334,0.119193, 0.950227, 0 )

iim = im.convert("L", rgb2xy)

2.5im.palette:P模式检验

返回ImagePalette的实例或者None

2.6Image.new()产生新图像

Image.new(mode, size,color)

(1)mode模式如RGB、L

(2)size宽高像素二元组

(3)color默认黑色,单通道给一个值,多通道特定元组,可用名字字符"green"、“red”

n_im= Image.new("RGB", (128, 128))#黑色128

n_im= Image.new("RGB", (128, 128),"green")#绿色

n_im= Image.new("RGB", (128, 128), "#FF0000")#红色单通道

2.7 im.copy()返回拷贝图像

2.8 im.crop(box)返回box四元组指定的图像区域,剪切指定区域

box(左,上,右,下)像素为单位

2.9im.paste(image,box)将image粘贴到im的box指定位置上

im.paste(im_crop, (100,100)) #将图像im_crop粘贴到im的(100,100,0,0)的位置上指定左上

im.paste(im_crop, (400,400,500,500))#指定四元组位置,大小必须与im_crop一致

3.0 im.Filter()返回滤波器处理过图像的拷贝,对原来图像没有影响

导入ImageFilter模块并在filter函数中使用

主要有:

BLUR 均值滤波,普通模糊

GaussianBlur 高斯模糊

CONTOUR 找轮廓

DETAIL 细节

EDGE_ENHANCE 边缘增强

EDGE_ENHANCE_MORE 边缘更加增强

EMBOSS 浮雕

FIND_EDGES 边缘检测

SMOOTH_MORE 平滑

SHARPEN 尖锐

from PIL import ImageFilter

im_new=im.filter(ImageFilter.BLUR)#均值滤波

im_new.show()

3.1 image.blend(image1,image2, alpha)返回叠加后的新图像(两张相同尺寸模式)

透明度计算= image1 (1.0 - alpha) + image2*alpha

3.2image.composite(image1,image2, mask)返回复合图像,mask作为透明度

mask图像mode为1、 L、 RGBA

3.3 image.eval(image,function)返回使用function函数处理过每个像素点的图像

def fun(y):

return y*2.0

im1_eval = Image.eval(im, fun)#对像素点操作,多通道的作用于每一个通道

3.4image.merge()合并类使用一些单通道图像,创建一个新的图像。

变量bands为一个图像的元组或者列表,每个通道的模式由变量mode描述。所有通道必须有相同的尺寸。

3.5im.split()返回三通道参数如:r,g,b = im.split()

3.6im.draft(mode,size)返回新设置的图像

配置图像文件加载器,使得返回一个与给定的模式和尺寸尽可能匹配的图像的版本

new_im = im.draft("L", (200,200))

3.7 im.getbands()返回包括每个通道名称的元组。例如,对于RGB图像将返回(“R”,“G”,“B”)

3.8im.getbbox()计算图像非零区域的包围盒。

这个包围盒是一个4元组,定义了左、上、右和下像素坐标。如果图像是空的,这个方法将返回None。

3.9 im.getdata()以包含像素值的sequence对象形式返回图像的内容

这个方法返回的sequence对象是PIL内部数据类型,它只支持某些sequence操作,包括迭代和基础sequence访问。使用list(im.getdata()),将它转换为普通的sequence。Sequence对象的每一个元素对应一个像素点的R、G和B三个值。

4.0 im.getextrema()返回最值

返回一个2元组,包括该图像中的最小和最大值。每个二元组代表rgb的最小最大值。

4.1im.getpixel((x,y))返回给定位置的像素

多通道是一个元组,单通道一个值,速度慢,可选择load和getdata

4.2 im.histogram()返回图像的直方图list

这个直方图是关于像素数量的list,图像中的每个象素值对应一个成员。如果图像有多个通道,所有通道的直方图会连接起来(例如,“RGB”图像的直方图有768个值)。二值图像(模式为“1”)当作灰度图像(模式为“L”)处理。

4.3 im.load()返回二维队列为图像分配内存并从文件中加载它(或者从源图像,对于懒操作)提升速度!!!。

方法load()返回一个用于读取和修改像素的像素访问对象。这个访问对象像一个二维队列

pix_one=im.load()

print(pix_one[0,2])

pix_one[1,2]=233

比方法getpixel()和putpixel()快很多

4.4 im.paste(colour,box)使用同一种颜色填充变量box对应的区域。本身修改无返回。对于单通道图像,变量colour为单个颜色值;对于多通道,则为一个元组。

im.paste((256,256,0),(0,0,100,100)) ##(256,256,0)表示黄色

im.paste("blue",(0,0,100,100)) ##或者“blue”

im.paste(image,box, mask)

使用变量mask对应的模板图像来填充所对应的区域。可以使用模式为“1”、“L”或者“RGBA”的图像作为模板图像。模板图像的尺寸必须与变量image对应的box图像尺寸一致。

r,g,b =im.split()

im.paste(im_crop, (200,200,300,300), r)

4.5 im.putdata(data) im.putdata(data,scale,offset)

从data序列中填充im的像素值

,默认从(0,0)到(i,0)。

参数使用:pixel = value*scale + offset

4.6 im.resize(size)返回改变尺寸的图像

参数:size二元组(x,y)

filter(滤波器的选择):

1.NEAREST(质量好)、

2.BILINEAR、BICUBIC或者ANTIALIAS(

速度快)

3.忽略时候:图像模式为“1”或者“P”,该变量设置为NEAREST

4.7 im.rotate(angle,filter=NEAREST, expand=0) 返回顺时旋转图像

参数:filter选择同上

expand真值1:图像大可装载旋转后图像,0:旋转图像尺寸不变。

4.8 im.seek(frame)定位到frame帧上图片,默认show()零帧

im.show() #第0帧图片,im为gif动图

im.seek(3)

im.show() #第三帧

4.9 im.tell()返回当前的帧数

5.0 im.thumbnail(size, filter)修改原图,使其包含一个自身的缩略图,该缩略图尺寸不大于给定的size。

不想修改记得用copy()

参数filter同上

5.1 im.transform(size, method, data, filter) 返回size大小的新的图像,与原图有相同的模式。

参数:

method:

EXTENT(裁剪出一个矩形区域)

AFFINE(仿射变换)

QUAD(将正方形转换为矩形)

MESH(一个操作映射多个正方形)

PERSPECTIVE

filter同上

data指定输入图像中两个坐标点的4元组(x0,y0,x1,y1)

(1)method=EXTENT (比方法crop()稍慢,但是与resize操作一样快):

data四元组

data大小=size 剪裁

data大小>size 缩小剪裁

data大小5.2im.transpose(method)返回翻转或者旋转图像

参数:method:

FLIP_LEFT_RIGHT 左右对换

FLIP_TOP_BOTTOM 上下对换

ROTATE_90 旋转90°

ROTATE_180

ROTATE_270

im.rotate(45) #逆时针旋转 45 度

im.transpose(Image.FLIP_LEFT_RIGHT)

随时更新。。

python常用函数图片_Python图像,图片处理笔记相关推荐

  1. 【Python常用函数合集】clip函数、range函数等

    你应该听说过,应用Python,可以让你处理一天的重复工作量,缩短到几分钟甚至更短.从此解放上班时间,研究更多更有效率的工作方法.进一步提升工作效率,让工作更出彩.这不是广告,这是实锤图片.    本 ...

  2. 机器学习之Python常用函数及模块整理

    机器学习之Python常用函数及模块整理 1. map函数 2. apply函数 3. applymap函数 4. groupby函数 5. agg函数 6. lambda函数 7. rank函数 8 ...

  3. python常用函数-python常用函数精讲

    原标题:python常用函数精讲 返回值为bool类型的函数 bool是Boolean的缩写,只有真(True)和假(False)两种取值 bool函数只有一个参数,并根据这个参数的值返回真或者假. ...

  4. python常用函数-python常用函数与用法示例

    本文实例讲述了python常用函数与用法.分享给大家供大家参考,具体如下: 自定义函数实例 # 定义一个函数 def printme( str ): "打印任何传入的字符串" pr ...

  5. Python 常用函数 - Python入门教程

    Python 常用函数 2021 年 3 月 12 日 上午 11:18 [编辑] Python print 函数(一) Python print 函数(二) Python format 函数 Pyt ...

  6. python常用函数有哪些

    Python常用函数: 1. print()函数:打印字符串 2. raw_input()函数:从用户键盘捕获字符 3. len()函数:计算字符长度 4. format(12.3654,'6.2f' ...

  7. python 常用函数总结

    python 常用函数总结 本文主要是pandas常用函数的总结: 1 import语句 pandas as pd import numpy as np import matplotlib.pyplo ...

  8. 纯干货!77个Python常用函数汇总,赶紧收藏!

    Python常用函数: 1. print()函数:打印字符串 2. raw_input()函数:从用户键盘捕获字符 3. len()函数:计算字符长度 4. format(12.3654,'6.2f' ...

  9. python常用函数大全-python常用函数与用法示例

    本文实例讲述了python常用函数与用法.分享给大家供大家参考,具体如下: 自定义函数实例 # 定义一个函数 def printme( str ): "打印任何传入的字符串" pr ...

  10. python读取多张图片_python读取图片的几种方式及图像宽和高的存储顺序

    python读取图片的几种方式及图像宽和高的存储顺序 1.opencv 2.imageio 3.matplotlib 4.scipy # coding:utf-8 import cv2 import ...

最新文章

  1. 视频动作识别--Convolutional Two-Stream Network Fusion for Video Action Recognition
  2. ai描边工具怎么打开_ai切片工具怎么用?ai切片工具使用教程
  3. 爬虫训练之--获取错误并将其保存进本地文件
  4. 台式电脑计算机无法启动 启动修复,遇到计算机无法启动时,该怎么修复?
  5. EBB-4、忘记root密码;文件,目录权限
  6. Go语言教程,电子书,PDF格式
  7. 机器学习笔记 增强学习与马尔科夫模型(1)
  8. (转)STORM启动与部署TOPOLOGY
  9. 【Python】Pycharm中plot绘图不能显示
  10. python装饰器详解-Python装饰器基础详解
  11. 英文的写作 —— 句子的积累
  12. 存储过程,是否有查看所有项目功能
  13. 智能电话机器人源码安装 部署好后,人工智能电话机器人,不仅仅是打电话而已!
  14. 系泊系统悬链线matlab,系泊系统的设计.docx
  15. Spark 连接kafka报错: Error while fetching metadata with correlation id xx [topicName=INVALID_REPLICATIO]
  16. 博客备份工具(博主网)开发略谈
  17. 文件夹的使用、常见术语缩写
  18. 获取docker容器里面的root权限
  19. 如何为服务器配置路由协议,服务器如何配置路由
  20. 职业 行业 2 博客

热门文章

  1. 剑灵系统推荐加点_剑灵3.0版本召唤师天赋加点推荐 50级10星
  2. 小米8运行linux,小米5 miui8 折腾 Linux Deploy 经验
  3. 10. solt 插槽
  4. 第六课nbsp;nbsp;nbsp;nbsp;普通话nbsp;-nbsp;前后鼻…
  5. 深度学习框架 PyTorch:60 分钟从熟悉到入门
  6. 是计算机系男神女神用英语怎么说,Azzurro意大利私房菜(购物公园店)
  7. 全国286个地级市空气颗粒物污染面板数据(2000-2018年)
  8. List<Integer>使用Remove移除int元素
  9. fluent批量创建流体截面,计算面积分和质量积分
  10. 慕课 北大曹健《人工智能实践-Tensorflow2.0》 全套讲义ppt 和代码数据集