Python深度学习及智能车竞赛实践 课件 6-文件和数据格式化_第1页
Python深度学习及智能车竞赛实践 课件 6-文件和数据格式化_第2页
Python深度学习及智能车竞赛实践 课件 6-文件和数据格式化_第3页
Python深度学习及智能车竞赛实践 课件 6-文件和数据格式化_第4页
Python深度学习及智能车竞赛实践 课件 6-文件和数据格式化_第5页
已阅读5页,还剩88页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第六章文件和数据格式化Python深度学习及智能车竞赛实践目录第2页010203文件

OS库zipfile库040506数据的格式化和处理PIL库OpenCV库01文件1.1文件的理解1.2文件的打开和关闭1.3文件的读取和写入1.4实例:赛车道自动绘制目录第3页格式化将字符串按照一定规格和式样进行规范将一组数据按照一定规格和式样进行规范:表示、存储、运算等"{

}{

}{

}".format()字符串格式化数据格式化文件和数据格式化1.1文件的理解文件是数据的抽象和集合文件是存储在辅助存储器上的数据序列文件是数据存储的一种形式文件展现形态:文本文件和二进制文件1.1文件的理解文本文件vs.二进制文件文本文件和二进制文件只是文件的展示方式本质上,所有文件都是二进制形式存储形式上,所有文件采用两种方式展示1.1文件的理解文本文件由单一特定编码组成的文件,如UTF-8编码由于存在编码,也被看成是存储着的长字符串适用于例如:.txt文件、.py文件等1.1文件的理解直接由比特0和1组成,没有统一字符编码一般存在二进制0和1的组织结构,即文件格式适用于例如:.png文件、.avi文件等二进制文件1.1文件的理解文本形式二进制形式(十六进制显示)"全国大学生智能汽车竞赛"全国大学生智能汽车竞赛b'\xc8\xab\xb9\xfa\xb4\xf3\xd1\xa7\xc9\xfa\xd6\xc7\xc4\xdc\xc6\xfb\xb3\xb5\xbe\xba\xc8\xfc'1.1文件的理解6.1testfile.txt文件保存:"全国大学生智能汽车竞赛"#以文本形式打开文件,编码方式为utf-8#r表示读文件,t表示文本格式tf=open("test_file.txt","rt")print(tf.readline())tf.close()>>>全国大学生智能汽车竞赛1.1文件的理解#以二进制形式打开文件#r表示读文件,b表示二进制格式bf=open("test_file.txt","rb")print(bf.readline())bf.close()>>>b'\xe5\x85\xa8\xe5\x9b\xbd\xe5\xa4\xa7\xe5\xad\xa6\xe7\x94\x9f\xe6\x99\xba\xe8\x83\xbd\xe6\xb1\xbd\xe8\xbd\xa6\xe7\xab\x9e\xe8\xb5\x9b'无论文件创建为文本文件或者二进制文件,都可以用“文本文件方式”和“二进制文件方式”打开,打开后的操作不同。1.1文件的理解6.2readbinfile.txt文件保存:"全国大学生智能汽车竞赛"01文件1.1文件概述1.2文件的打开和关闭1.3文件的读取和写入1.4实例:赛车道自动绘制目录第12页Python对文本文件和二进制文件采用统一的操作步骤:

“打开-操作-关闭”1.2文件的打开和关闭文件的打开<变量名>=open(<文件名>,<打开模式>)文件句柄文件路径和名称源文件同目录可省路径文本or二进制读or写1.2文件的打开和关闭文件路径和名称源文件同目录可省路径"D:/pycodes/c6/a.txt""D:\\pycodes\\c6\\a.txt"“a.txt""./pycodes/c6/a.txt"1.2文件的打开和关闭文件路径<变量名>=open(<文件名>,<打开模式>)文件的打开模式描述'r'只读模式,默认值,如果文件不存在,返回FileNotFoundError'w'覆盖写模式,文件不存在则创建,存在则完全覆盖'x'创建写模式,文件不存在则创建,存在则返回FileExistsError'a'追加写模式,文件不存在则创建,存在则在文件最后追加内容'b'二进制文件模式't'文本文件模式,默认值'+'与r/w/x/a一同使用,在原功能基础上增加同时读写功能1.2文件的打开和关闭f=open("a.txt")f=open("a.txt","rt")f=open("a.txt","w")f=open("a.txt","a+")f=open("a.txt","x")f=open("a.txt","b")f=open("a.txt","wb")-文本形式、只读模式、默认值-文本形式、只读模式、同默认值-文本形式、覆盖写模式-文本形式、追加写模式+读文件-文本形式、创建写模式-二进制形式、只读模式-二进制形式、覆盖写模式1.2文件的打开和关闭文件打开模式#文本形式打开文件tf=open("a.txt","rt")print(tf.readline())tf.close()#二进制形式打开文件bf=open("a.txt","rb")print(bf.readline())bf.close()1.2文件的打开和关闭文件使用<变量名>.close()文件句柄1.2文件的打开和关闭文件的关闭#二进制形式打开文件bf=open("a.txt","rb")print(bf.readline())bf.close()01文件1.1文件概述1.2文件的打开和关闭1.3文件的读取和写入1.4实例:赛车道自动绘制目录第20页1.3文件的读取和写入操作方法描述<f>.read(size=-1)

读入全部内容;

如果给出参数,读入前size长度

>>>s=f.read(2)"全国"<f>.readline(size=-1)读入一行内容,如果给出参数,读入该行前size长度

>>>s=f.readline()

"全国大学生智能汽车竞赛"<f>.readlines(hint=-1)读入文件所有行,以每行为元素形成列表如果给出参数,读入前hint行

>>>s=f.readlines()[‘全国大学生智能汽车竞赛\n’,’智慧交通创意赛\n’]文件读取方法遍历全文件:方法一1.3文件的读取和写入:一次读入,统一处理#实例6.3.1readtextfile.py读取文件内容f=open("test_file.txt","r",encoding="utf-8")str=f.read()print("theresultofreadingis:",str)f.close()6.3.1readtextfile.py#实例6.3.2readtextfile.py读取文件内容f=open("test_file.txt","r",encoding="utf-8")str=f.read(5)print("theresultofreadingis:",str)print("theremainingwordsare:",f.read())f.close():按数量读入,逐步处理1.3文件的读取和写入遍历全文件:方法二6.3.2readtextfile.py#实例6.3.3readtextfile2.py读取文件内容f=open("test_file2.txt","r",encoding="utf-8")print(“theresultofreadingis:\n)forlineinf.readlines():print(line)f.close()1.3文件的读取和写入逐行遍历文件:方法一:一次读入,分行处理6.3.3readtextfile2.py1.3文件的读取和写入:分行读入,逐行处理逐行遍历文件:方法二#实例6.3.4readtextfile2.py读取文件内容f=open("test_file2.txt","r",encoding="utf-8")print(“theresultofreadingis:\n)forlineinf:print(line)f.close()6.3.4readtextfile2.py操作方法描述<f>.write(s)向文件写入一个字符串或字节流

>>>f.write("全国大学生智能汽车竞赛")

<f>.writelines(lines)将一个元素全为字符串的列表写入文件

>>>ls=["智能车","智慧交通","自动驾驶"]

>>>f.writelines(ls)"智能车智慧交通自动驾驶"1.3文件的读取和写入文件写入方法操作方法描述<f>.seek(offset)改变当前文件操作指针的位置,offset含义如下:

0–文件开头;1–当前位置;2–文件结尾

>>>f.seek(0)#回到文件开头

1.3文件的读取和写入文件的指针1.3文件的读取和写入#实例6.9writefile.pywrite()方法使用f=open("test_file3.txt","w+",encoding="utf-8")print(f.write("全国大学生\n智能汽车竞赛"))f.close()6.9writefile.py1.3文件的读取和写入#实例6.10writelines.pywritelines()方法使用f=open("test_file4.txt","w+",encoding="utf-8")ls=["全国大学生\n","智能汽车\n","竞赛"]f.writelines(ls)f.close()6.10writelines.py-写入一个字符串列表>>>(没有任何输出)文件打开后,对文件的读写有一个指针,对文件进行读写操做时,指针将向前进,再次读写的内容将从指针的新位置开始。因此返回结果为空。1.3文件的读取和写入#实例6.10.1writelines.pywritelines()方法使用f=open("test_file4.txt","w+",encoding="utf-8")ls=["全国大学生\n","智能汽车\n","竞赛"]f.writelines(ls)for

linein

f:print(line)f.close()1.3文件的读取和写入#实例6.10.1writelines.pywritelines()方法使用f=open("test_file4.txt","w+",encoding="utf-8")ls=["全国大学生\n","智能汽车\n","竞赛"]f.writelines(ls)f.seek(0)for

linein

f:print(line)f.close()01文件1.1文件概述1.2文件的打开和关闭1.3文件的读取和写入1.4实例:赛车道自动绘制目录第32页问题分析80,0,50,90,0.5,0.5,0.50,1,70,180,0.5,0.5,0.50,0,50,90,0.5,0.5,0.5100,0,50,90,0.5,0.5,0.5300,1,60,270,0.5,0.5,0.5500,1,50,90,0.5,0.5,0.5……数字中包含行进方式、距离、方向、颜色信息chedaoxian1.csv1.4赛车道自动绘制需求:根据脚本来绘制图形?不通过改变代码而通过改变数据绘制不同轨迹数据脚本是自动化最重要的第一步1.4赛车道自动绘制问题分析步骤1:定义数据文件格式(接口)

步骤2:编写程序,根据文件接口解析参数绘制赛车道

步骤3:编制数据文件1.4赛车道自动绘制基本思路

直行距离80,0,50,90,0.5,0.5,0.50,1,70,180,0.5,0.5,0.50,0,50,90,0.5,0.5,0.5弧线方向1:顺时针0:逆时针弧的角度RGB三个通道颜色0-1之间浮点数弧的半径1.4赛车道自动绘制数据接口定义python内置函数,根据提供的函数对指定的序列做映射。Map函数返回每次function函数返回值的新列表。map()

函数的格式:

map(function,iterable,...)接受一个函数名一个或多个可迭代的序列1.4赛车道自动绘制map函数>>>def

square(x):

return

x**2>>>list(map(square,[1,2,3,4,5]))[1,4,9,16,25]>>>list(map(int,'1234'))[1,2,3,4]>>>list(map(eval,'1234'))[1,2,3,4]>>>list(map(eval,['1','2','3','4']))[1,2,3,4]>>>

list(map(eval,['80','0','50','90','0.5','0.5',

'0.5']))[80,0,50,90,0.5,0.5,0.5]1.4赛车道自动绘制6.11lineauodraw.py1.4赛车道自动绘制理解方法思维,学会举一反三自动化思维:数据和功能分离,数据驱动的自动运行接口化设计:格式化设计接口,清晰明了二维数据应用:应用维度组织数据,二维数据最常用1.4赛车道自动绘制

作业拓展:扩展接口设计,增加更多控制接口扩展功能设计,增加弧形等更多功能目录第41页010203文件

OS库zipfile库040506数据的格式化和处理PIL库OpenCV库OS(OperatingSystem),即操作系统,OS库用于和系统进行交互,提供了非常丰富的文件及目录读写的方法,常用的有:1.os.listdir()用于返回一个由文件名和目录名组成的列表,需要注意的是它接收的参数需要是一个绝对的路径;2.os.path.isdir()用于判断对象是否为一个目录;3.os.path.isfile()用于判断对象是否为一个文件。6.12ostest.py2.OS库目录第43页010203文件

OS库zipfile库040506数据的格式化和处理PIL库OpenCV库Zipfile库用于zip格式编码的压缩和解压缩的,可以用来操作zip文件,提供了创建、打开、读取、写入、添加及列出zip文件的方法,其中ZipFile方法用来创建和读取zip文件。6.13zipfiletest.pyZipFile(file,mode='r',compression=ZIP_STORED,allowZip64=True)参数含义file文件路径mode操作含义,与文件操作中相同,默认为r。compression压缩方法,默认为ZIP_STORED。allowZip64操作的压缩包文件大小大于2G时应该True,默认为True,不用管它。模式含义w创建一个新的压缩包文件。r读取已有的压缩包文件。a向已有的压缩包文件中压缩文件。3.zipfile库实例:车辆图片数据处理基本思路步骤1:解压缩文件步骤2:读取文件名信息,生成数据列表步骤3:乱序、切分训练集和验证集步骤4:生成训练集和验证集文本文件6.14VehicleZip_DataList.py3.zipfile库实例:车辆图片数据处理基本思路3.zipfile库一般解压缩文件是大数据分析、机器学习第一步;从文件夹名称或文件名字提出图片标签值;乱序,使得训练出的模型泛化能力更强;切分训练集和验证集。目录第47页010203文件

OS库zipfile库040506数据的格式化和处理PIL库OpenCV库04数据的格式化和处理4.1数据组织的维度4.2json库4.3车辆图片json文件处理目录第48页一组数据在被计算机处理前需要进行一定的组织,表明数据之间的基本关系和逻辑,进而形成“数据的维度”。根据数据的关系不同,数据组织可以分为:一维数据二维数据高维数据4.1数据组织的维度一维数据的表示一维数据是最简单的数据组织类型,由于是线性结构,在Python语言中主要采用列表形式表示。例如:一行赛车道信息采用一个列表变量表示。>>>ls=[80,0,50,90,0.5,0.5,0.5]>>>print(ls)[80,0,50,90,0.5,0.5,0.5]一维数据由对等关系的有序或无序数据构成,采用线性方式组织,对应于数学中的数组和集合等概念;4.1数据组织的维度一维数据的文件存储有多种方式,总体思路是采用特殊字符分隔各数据。常用存储方法有如下4种。(1)采用空格分隔元素,例如:

80050900.50.50.5(2)采用逗号分隔元素,例如:

80,0,50,90,0.5,0.5,0.5(3)采用换行分隔包括,例如:

80

0

50

……(4)其他特殊符号分隔,以分号分隔为例,例如:

80;0;50;90;0.5;0.5;0.5一维数据的存储4.1数据组织的维度逗号分割的存储格式叫做CSV格式(Comma-SeparatedValues,即逗号分隔值),是一种通用的、相对简单的文件格式,在商业和科学上广泛应用,大部分编辑器都支持直接读入或保存文件为CSV格式。一维数据的存储4.1数据组织的维度二维数据,也称表格数据,由关联关系数据构成,采用表格方式组织,对应于数学中的矩阵,常见的表格都属于二维数据,如赛车道绘制实例中多行数据信息。二维数据的存储4.1数据组织的维度6.17readdata2.py6.18readdata2-2.py04数据的格式化和处理4.1数据组织的维度4.2json库4.3车辆图片json文件处理目录第54页高维数据可以由键值对组成的字典类型的数据做为列表的元素构成,采用对象方式组织,可以多层嵌套,属于整合度更好的数据组织方式;高维数据在网络系统中十分常用,HTML、XML、JSON等都是高维数据组织的语法结构。{"北航学生":[ {"姓氏”:"张","名字":"三","单位":"交通学院"},{"姓氏":"李","名字":"四","单位":"宇航学院"},{"姓氏":"黄","名字":"五","单位":"动力学院"}]}高维数据的存储4.2json库JSON(JavaScript

ObjectNotation)是一种轻量级的数据交换格式,易于阅读和编写,可以在多种语言之间进行数据交换,同时也易于机器解析和生成。经常用于接口数据传输、序列化、配置文件等,json的常用形式有2种:键值对形式、数组形式。方法说明dumps()将Python对象编码成json字符串loads()解码json数据,返回python对象dump()将python对象编码成json数据并写入json文件中load()从json文件中读取数据并解码为Python对象PythonJSONdictobjectlist,tuplearraystr,unicodestringint,long,floatnumberTruetrueFalsefalseNonenull

4.2json库6.20dicttojson.py6.21jsontodict.py04数据的格式化和处理4.1数据组织的维度4.2json库4.3车辆图片json文件处理目录第57页6.22json_to_txt.py基本思路步骤1:读取json文件的字典数据;步骤2:遍历每个键值对元素,生成一行数据;步骤3:每行数据写入文本文件中。4.3车辆图片json文件处理目录第59页010203文件

OS库zipfile库040506数据的格式化和处理PIL库OpenCV库05PIL库5.1PIL库概述5.2图像格式转换方法5.3图像缩放方法5.4图像分离与融合方法5.5图像几何变换方法5.6图像过滤和增强方法目录第60页PIL(PythonImageLibrary)库是Python语言的第三方库,需要通过pip工具安装。:\>pipinstallpillow

或者

pip3installpillowPIL库主要有两方面功能需求:图像归档:对图像进行批处理、生成图像预览、图像格式转换等;图像处理:图像基本处理、像素处理、颜色处理等。5.1PIL库概述PIL库Image类解析在PIL中,PIL库中总共包含20多个与图像相关的类,这些类可以看成PIL库的子库或者子模块,其中Image类是最常用、最重要的模块,任何一个图像文件都可以用Image对象表示。方法描述Image.open(filename)根据参数加载图像文件Image.new(mode,size,color)根据给定参数创建一个新的图像Image.open(StringIO.StringIO(buffer))从字符串中获取图像Image.frombytes(mode,size,data)根据像素点data创建图像Image.verify()对图像文件完整性进行检查,返回异常5.1PIL库概述Image类有4个处理图片的常用属性

属性描述Image.format标识图像格式或来源,如果图像不是从文件读取,值是NoneImage.mode图像的色彩模式,"L"灰度图像、"RGB"真彩色图像、"CMYK"出版图像Image.size图像宽度和高度,单位是像素(px),返回值是二元元组(tuple)Image.palette调色板属性,返回一个ImagePalette类型PIL库Image类解析5.1PIL库概述实例:使用Image打开图像文件。#实例6.23pil1.py图片格式转换fromPILimportImage#打开图像文件img=Image.open("pic1.jpg")#调用show()方法显示图片img.show()#查看图片属性print(img.format)print(img.size)print(img.mode)print(img.palette)PIL库Image类解析5.1PIL库概述05PIL库5.1PIL库概述5.2图像格式转换方法5.3图像缩放方法5.4图像分离与融合方法5.5图像几何变换方法5.6图像过滤和增强方法目录第65页PIL库支持几乎所有格式的图像,PIL库中有两种方法可以对图像进行格式之间的转换。方法描述Image.save(filename,format)将图像保存为filename文件名,format是图片格式Image.convert(mode)使用不同的参数,转换图像为新的模式PIL库Image类-图像格式转换方法5.2图像格式转换方法#实例6.24pil2.py图片格式转换fromPILimportImage#打开图片文件img=Image.open("pic1.jpg")#查看test.jpg图片格式print(img.mode)#通过save()方法将其转换为bmp格式img.save("jpg-bmp.bmp")#将RGB三通道图片通过convert()方法转换为RGBA四通道png图片im=img.convert("RGBA")print(im.mode)im.save("jpg-png.png")PIL库Image类-图像格式转换方法5.2图像格式转换方法05PIL库5.1PIL库概述5.2图像格式转换方法5.3图像缩放方法5.4图像分离与融合方法5.5图像几何变换方法5.6图像过滤和增强方法目录第68页方法描述Image.resize(size,resample=image.BICUBIC,box=None,reducing_gap=None)将图像保存为size大小,size为元组类型参数,(width,height),表示图片缩放后的尺寸,resample参数为图像重采样滤波器,box参数实现对指定区域图片进行缩放操作,reducing_gap用于优化图片的缩放效果Image.thumbnail(size)创建图像的缩略图,size是缩略图尺寸的二元元组5.3图像缩放方法PIL库Image类-图像缩放方法#实例6.25pil3.py图片局部放大fromPILimportImageimg=Image.open("pic1.jpg")print("原图像大小为:{}".format(img.size))try:

im=img.resize((1280,960),resample=Image.LANCZOS,box=(0,0,320,480))

im.show()

im.save("test_resize.jpg")print("放大后图像大小为:{}".format(im.size))exceptIOError:print("ResizeDefault!!!")PIL库Image类-图像缩放方法5.3图像缩放方法#6.26pil4.py,thumbnail()方法创建缩略图fromPILimportImageimg=Image.open("pic1.jpg")try:

img.thumbnail((150,100))

img.show()

img.save("test_thubm.jpg")print(img.size)exceptIOError:print("ResizeDefault!!!")结果显示缩小后的图片尺寸为(133,100),因为Pillow会对原图像的长、宽进行等比例缩小PIL库Image类-图像缩放方法5.3图像缩放方法05PIL库5.1PIL库概述5.2图像格式转换方法5.3图像缩放方法5.4图像分离与融合方法5.5图像几何变换方法5.6图像过滤和增强方法目录第72页Image类能够对每个像素点或者一幅RGB图像的每个通道单独进行操作split()方法能够将RGB图像各颜色通道提取出来;merge()方法能够将各独立通道再合成一幅新的图像。方法描述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*alphaPIL库Image类-图像分离与融合方法5.4图像分离和融合方法#6.27pil5.py,图像的分离fromPILimportImageimg=Image.open("pic1.jpg")#利用split()方法分离颜色通道,产生3个Image对象r,g,b=img.split()r.save("r.jpg")g.save("g.jpg")b.save("b.jpg")PIL库Image类-图像分离与融合方法5.4图像分离和融合方法#实例6.28pil6.pymerge方法使用fromPILimportImageimg=Image.open("pic1.jpg")#利用split()方法分离颜色通道,产生3个Image对象r,g,b=img.split()#使用merge()方法重新组合三颜色通道(b,g,r)img_merge=Image.merge("RGB",[b,g,r])img_merge.save("img_merge.jpg")PIL库Image类-图像分离与融合方法5.4图像分离和融合方法#实例6.29pil7.py图片融合fromPILimportImageimg1=Image.open("pic1.jpg")img2=Image.open("map.jpg")#利用resize()方法使img2大小与img1一致img=img2.resize(img1.size)#分别对两张图片进行颜色通道分离r1,g1,b1=img1.split()r2,g2,b2=img.split()#使用merge()方法重新组合img_merge=Image.merge("RGB",(r1,g2,b1))img_merge.save("merge.jpg")img_blend=Image.blend(img1,img,0.5)img_blend.save("blend.jpg")PIL库Image类-图像分离与融合方法5.4图像分离和融合方法05PIL库5.1PIL库概述5.2图像格式转换方法5.3图像缩放方法5.4图像分离与融合方法5.5图像几何变换方法5.6图像过滤和增强方法目录第77页PIL库Image类-图像的几何变换方法描述Image.transpose(method)实现图像的垂直、水平翻转等Image.rotate(angle,resample=PIL.Image.NEAREST,expand=None,center=None,translate=None,fillcolor=None)把图像旋转angle角度,resample为重采样滤波器,默认值为PIL.Image.NEAREST最近邻插值方法,expand是否对图像进行扩展,center指定旋转中心,translate对旋转后的图像进行平移,fillcolor为图像旋转后,对图像之外的区域进行填充。Image.transform(size,method,data=None,resample=0)对图像进行变换操作,通过指定的变换方式,产生一张规定大小的新图像5.5图像几何变换方法PIL库Image类-图像的几何变换#实例6.30pil8.py图像几何变换fromPILimportImageimg=Image.open("pic1.jpg")#对图像进行上下垂直翻转img_transpose=img.transpose(Image.Transpose.FLIP_TOP_BOTTOM)img_transpose.save("img_transpose.jpg")#对图像进行旋转操作img_rotate=img.rotate(45,fillcolor="blue")img_rotate.save("img_rotate.jpg")#设置图片大小,根据data信息截取图像区域img_transform=img.transform((640,480),Image.Transform.EXTENT,data=[0,0,img.width//2,img.height//2])img_transform.save("img_transform.jpg")5.5图像几何变换方法05PIL库5.1PIL库概述5.2图像格式转换方法5.3图像缩放方法5.4图像分离与融合方法5.5图像几何变换方法5.6图像过滤和增强方法目录第80页方法表示描述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图像的锐化效果PIL库ImageFilter类-图像过滤方法5.6图像过滤和增强方法ImageEnhance类提供了高级的图像增强需求,它提供调整色彩度、亮度、对比度、锐化等功能。方法描述ImageEnhance.enhance(factor)对选择属性的数值增强factor倍ImageEnhance.Color(im)调整图像的颜色平衡ImageEnhance.Contrast(im)调整图像的对比度ImageEnhance.Brightness(im)调整图像的亮度ImageEnhance.Sharpness(im)调整图像的锐化PIL库ImageEnhance类-图像增强方法5.6图像过滤和增强方法#实例6.31pil9.py图像过滤和增强fromPILimportImagefromPILimportImageFilterfromPILimportImageEnhanceimg=Image.open("pic1.jpg")#对图像进行二值化处理提取部分车道线thresh=200func=lambdax:255ifx>threshelse0img_b=img.convert("L").point(func,mode="1")img_b.save("img_b.jpg")#获取图像轮廓img_contour=img.filter(ImageFilter.CONTOUR)img_contour.save("img_contour.jpg")#调整图像对比度img_contrast=ImageEnhance.Contrast(img)img_contrast.enhance(3).save("img_contrast.jpg")5.6图像过滤和增强方法目录第84页010203文件

OS库zipfile库040506数据的格式化和处理PIL库OpenCV库OpenCV(OpenSourceComputerVisionLibrary)库是Python语言的第三方库,需要通过pip工具安装。:\>pipinstallopencv-pythonOpenCV库实现了图像处理和计算机视觉方面的大量通用算法,可以说是计算机视觉研究领域最强大有力的工具;OpenCV库已经被应用于各种场景,例如图像检测、图像识别、对运动图像进行分类、图像物体跟踪等;OpenCV库的官方网站为/6.OpenCV库6.OpenCV库方法作用参数cv2.imread(filepath,flags)读入图像Filepath:图像存储路径Flags:读入图像的标志,如cv2.IMREAD_GRAYSCALE表示读入灰度图cv2.imshow(wname,image)显示图像Wname:显示图像的窗口名称Image:要显示的图像,窗口大小自动调整为图片大小cv2.imwrite(file,image,num)保存图像File:要保存的文件名Iamge:要保存的图像Num:压缩级别,默认为3OpenCV库常用方法OpenCV库常用方法6.OpenCV库方法作用参数cv2.resize(image,image2,size)缩放图像Image:输入原图Image2:输出图像Size:输出图像大小cv2.flip(image,flipcode)翻转图像Image:输入图像Flipcode:=0沿x轴翻转>0沿y轴翻转<0沿x,y轴同时翻转cv2.warpAffine(image,M,size)图像仿射变换Image:输入图像变换矩阵:M平移、M_crop裁剪、M_shear剪切、M_rotate旋转Size:元组类型数据,表示输出图像大小OpenCV库常用方法6.OpenCV库

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论