打开文件

打开文件的方法

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)file参数:指定了被打开的文件名称

mode参数:指定了打开文件后的处理方式,默认为r读模式

buffering参数:指定了读写文件的缓存模式。0表示不缓存,1表示缓存,如大

于1则表示缓冲区的大小。默认值是缓存模式

encoding参数:指定对文本进行编码和解码的方式,只适用于文本模式,可以使

用Python支持的任何格式,如GBK、utf8、CP936等等。

open()函数返回1个文件对象,通过该文 件对象可以对文件进行读写操作。如果指定文件不存在、 访问权限不够、磁盘空间不足或其他原因导致创建文件对 象失败则抛出异常。

即使写了关闭文件的代码,也无法保证文件一定能 够正常关闭。例如,如果在打开文件之后和关闭文件之前 发生了错误导致程序崩溃,这时文件就无法正常关闭。在 管理文件对象时推荐使用with关键字

例如:1

2

3with open('data.txt', 'r') as f:

data = f.read()

print('context: {}'.format(data))

打开文件的方式

文件的常用属性

例如:1

2

3with open('test.txt') as f:

print(f.mode)

f.close()

输出为r

文件的常用方法read([size]): 从文本文件中读取size个字符(Python 3.x)的内容作为结果返回,或从二进制文件

中读取指定数量的字节并返回,如果省略size则表示读取所有内容

write(s) :把s的内容写入文件

writelines(s) :把字符串列表写入文本文件,不添加换行符

readline() :从文本文件中读取一行内容作为结果返回

readlines() :把文本文件中的每行文本作为一个字符串存入列表中,返回该列表,对于大文件会占 用较多内存,不建议使用

seek(offset[, whence]): 把文件指针移动到新的字节位置,offset表示相对于whence的位置。whence为0表示从 文件头开始计算,1表示从当前位置开始计算,2表示从文件尾开始计算,默认为0

tell() :返回文件指针的当前位置

flush() :把缓冲区的内容写入文件,但不关闭文件

close():关闭文件

关于于seek()方法的是把 文件指针定位到文件中指定字节的位置,所以若为中文,则注意一个汉字两个字节其他文件操作查看:Python文件

文件级操作

Python的多种文件模块如果需要处理文件路径,可以使用os.path模块中的对象和 方法;

如果需要使用命令行读取文件内容可以使用fileinput模块;

创建临时文件和文件夹可以使用tempfile模块;

OS模块常用方法

os.path模块常用方法

shutil模块常用方法

os模块目录操作

Python对图像文件的处理

安装Pillow库

import PIL #引入PIL中的所有类

from PIL import Image #单独引入Image类

PIL库的Image类常用方法

Image类的打开或创建图片方法描述Image.open(filename)根据参数加载图像文件

Image.new(mode,size,color)根据给定参数创建一个新图像

Image.open(StringIO.StringIO(buffer))从字符串中获取图像

Image.frombytes(mode,size,data)根据像素点data创建图像

Image.verify()对图像文件完整性进行检查,返回异常

Image类的4个处理图片的常用属性属性描述Image.format标识图像格式和来源,如果图像不是从文件读取,值为None

Image.mode图像的色彩模式,”L”为灰度图像,“RGB”为真彩色图像,“CMYK”为出版图像

Image.size图像的宽度和高度,单位为像素(px),返回值为二元元组

Image.pallette调色板属性,返回一个ImagePallete类型

Image还能读取序列图像,包括GIF、FLI、FLC、TIFF等格式,open()方法打开时自动加载序列中的第一帧,使用seek()和tell()方法可以在不同帧之间移动

Image类的图像转换和保存方法方法描述Image.save(filename,format)将图像保存为名为filename的文件,format是图片格式

Image.convert(mode)使用不同的参数,转换图像为新的模式

Image.thumbnail(size)创建图像的缩略图,size是缩略图尺寸的二元元组

Image类的图像旋转和缩放方法描述Image.resize(size)按size大小调整图像,生成副本

Image.rotate(angle)按angle角度逆时针旋转图像,生成副本

Image类的图像像素和通道处理方法方法描述Image.point(func)根据函数func的功能对每个元素进行运算,返回图像副本

Image.split()提取RGB图像的每个颜色通道,返回图像副本

Image.merge(mode,bands)合并通道,其中mode表示色彩,bands表示新的色彩通道

Image.blend(im1,im2,alpha)将两幅图片im1和im2按照如下公式插值后生成新的图像:im1×(1,0-alpha)+im2×alpha

PIL的ImageFilter类提供了10种图像过滤方法方法描述ImageFilter.BLUR图像的模糊效果

ImageFilter.CONTOUR图像的轮廓效果

ImageFilter.DETAIL图像的细节效果

ImageFilter.EDGE_ENHANCE图像的边界加强效果

ImageFilter.EDGE_ENHANCE_MORE图像的阈值加强效果

ImageFilter.EMBOSS图像的浮雕效果

ImageFilter.FIND_EDGES图像的边界效果

ImageFilter.SMOOTH图像的平滑效果

ImageFilter.SMOOTH_MORE图像的阈值平滑效果

ImageFilter.SHARPEN图像的锐化效果

利用Image类的filter()方法可以使用ImageFilter类,格式Image.filter(ImageFilter.function)

PIL的ImageEnhance类提供了5种图像增强和滤镜方法方法描述ImageEnhance.enhance(factor)对选择属性的数值增强factor倍

ImageEnhance.Color(im)调整图像的颜色平衡

ImageEnhance.Contrast(im)调整图像的对比度

ImageEnhance.Brightness(im)调整图像的亮度

ImageEnhance.Sharpness(im)调整图像的锐度

NumPy库

数组Arrays

NumPy数组是通常的Python数组的扩展。NumPy数组配备了大量的函数和运算符,可以帮助我们快速编写上面讨论过的各种类型计算的高性能代码。

创建数组

常用属性

常用形态操作

切片和索引

切片:和Python列表类似,numpy数组可以使用切片语法。因为数组可以是多维的,所以你必须为每个维度指定好切片。1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33import numpy as np

a=np.random.rand(5,3)

print(a)

print(a[2])

print()

print(a[1:3])

print()

print(a[-5:-2:2])

print()

print(a[:3,:2])

print()

print(a[[0,1,2],[2,1,0]])

#数组中(0,2),(1,1)和(2,0)位置处的元素

#输出:

# [[0.44761556 0.81326569 0.79004551]

# [0.57454174 0.39755703 0.48081083]

# [0.68405094 0.74275781 0.90948634]

# [0.8489756 0.56085858 0.87524095]

# [0.14517911 0.79332683 0.67406689]]

# [0.68405094 0.74275781 0.90948634]

#

# [[0.57454174 0.39755703 0.48081083]

# [0.68405094 0.74275781 0.90948634]]

#

# [[0.44761556 0.81326569 0.79004551]

# [0.68405094 0.74275781 0.90948634]]

#

# [[0.44761556 0.81326569]

# [0.57454174 0.39755703]

# [0.68405094 0.74275781]]

#

# [0.79004551 0.39755703 0.68405094]

numpy库的算术运算函数

numpy库的比较运算函数

图像和数据处理

图像和数组的转换

图像的数组表示和转换

1、将图像转换为数组:

im=Image.open(filename)

arr=np.array(im)

2、将数组存储为图像:

pil_im=Image.fromarray()

matplotlib库的使用

matplotlib库是提供数据绘图功能的第三方库,其pyplot字库主要用于实现各种数据展示图形的绘制。

matplotlib画图可以总结为3个步骤:获取数据——画出基本图形——设置细节

使用汉字

Matplotlib 默认情况不支持中文,我们需要这样设置:1

2matplotlib.rcParams['font.family']='SimHei'

matplotlib.rcParams['font.sans-serif']='SimHei'

常用绘图函数

绘图区域函数

plt和pillow的结合使用

pythonpil库过滤图像contour_Python随记【三】相关推荐

  1. pythonpil库过滤图像contour_Python之PIL库的运用、GIF处理h

    一.PIL库简介 PIL(Python Image Library)库是Python语言的第三方库,它支持图像存储.显示和处理,它能够处理几乎所有图片格式,可以完成对图像的缩放.剪裁.折叠以及像图片添 ...

  2. pythonpil库过滤图像contour_一秒钟带你走进P图世界-----(python)PIL库的使用

    python-----PIL库的使用 一.什么是PIL库 1.PIL(Python Image Library)库是python语言的第三方库,具有强大的图像处理能力,不仅包含了丰富的像素.色彩操作功 ...

  3. pythonpil库过滤图像contour_快乐python 零基础也能P图 —— PIL库

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

  4. Python学记(三)turtle库

    Python标准库:turtle库 Mark一下上次课的两个编程习题 获得用户输入的一个整数,参考该整数值,打印输出"Hello World",要求:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫ ...

  5. python傅里叶变换库_python的numpy库和cv2库实现图像傅里叶变换

    码字不易,如果对您有所帮助,记着点赞哦! 一. 图像傅里叶变换原理: 对二维图像进行傅里叶变换用如下公式进行: 图像长M,高N.F(u,v)表示频域图像,f(x,y)表示时域图像.u的范围为[0,M- ...

  6. Python学习记录(一)PIL库对于图像操作方法的简单整理

    Python学习记录(一)PIL库对于图像操作方法的简单整理 首先对PIL库进行一个简单的介绍:Python图像库PIL(Python Image Library)是python的第三方图像处理库,由 ...

  7. php gd库 函数 建立gif,PHP_PHP GD库生成图像的几个函数总结,使用GD库中提供的函数动态绘 - phpStudy...

    PHP GD库生成图像的几个函数总结 使用GD库中提供的函数动态绘制完成图像以后,就需要输出到浏览器或者将图像保存起来.在PHP中,可以将动态绘制完成的画布,直接生成GIF.JPEG.PNG和WBMP ...

  8. python 颜色_如何使用python中matplotlib库分析图像颜色

    用代码分析图像可能很困难.你如何使代码"理解"图像的上下文? 通常,使用AI分析图像的第一步 是找到主要颜色.在如何使用python中matplotlib库分析图像颜色中,我们将使 ...

  9. NTL密码算法开源库-大整数ZZ类(三)

    2021SC@SDUSC NTL密码算法开源库-大整数ZZ类(三) 中国剩余定理 一次同余式 乘法逆元 简化剩余的等价描述 二次同余式 雅可比符号 中国剩余定理 //中国剩余定理模板代码 typede ...

最新文章

  1. HYSBZ - 2301 莫比乌斯反演
  2. 触发器deleted 表和 inserted 表详解(转)
  3. JetPack——网络库封装
  4. 转 安装php时报gd相关的错误(gd_ctx.c)
  5. 部署OpenStack问题汇总(五)--openstack中删除虚拟主机,状态一直未deleting
  6. php js跨域上传文件,Jquery实现跨域异步上传文件步骤详解
  7. 流浪的python博客园_python学习心得第一章
  8. 风铃发卡网源码-可商用,支持个人码支付,当面付
  9. Python爬虫入门教程 27-100 微医挂号网专家团队数据抓取pyspider
  10. sql语句回忆录1-多表连接子查询
  11. 江山三侠—Flash短片轻松学(第2季)
  12. 音频处理工具SOX详解
  13. 可解释的机器学习,用于科学的见解和发现(Explainable Machine Learning for Scientific Insights and Discoveries)
  14. 微信域名防封,微信网址域名防封的几种方法
  15. 在Tomcat上安装部署SAIKU
  16. 物理机服务器重装nvidia显卡驱动
  17. Uber入驻四川乐山峨眉地区
  18. 网页设计标记工具——马克鳗
  19. 可能是知乎里最浅显易懂的激光测距技术讲解:什么是点激光,线激光,面激光。它们在扫地机器人上是如何应用的。
  20. 阿里腾讯在海南智慧城市之争

热门文章

  1. 《Cisco QoS认证考试指南(第2版)》——6.3节流量限速和流量整形概念
  2. php yof框架特点_在线竞拍系统的PHP实现框架(一)
  3. ABViewer Crack,功能丰富的软件支持 60 多种流行格式
  4. 【大数据开发】Flink——Flink Soure
  5. 阿里云专有云重磅亮相中国信通院2022混合云技术发展论坛
  6. Android IO监控 | 性能监控系列
  7. 记录:无人机回传管理软件Springboot对接大疆无人机实现视频音频实时回传以及录制视频回放功能
  8. 玩转Hadoop集群DNS改造
  9. 台式电脑计算机怎么用,台式电脑怎么设置定时关机
  10. Redhat.Enterprise.Linux 6.1无效或者缺失授权证书解决办法