




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第六章文件和數據格式化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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 社會運動與政治變革試題及答案
- 網絡工程師職業發展路徑試題及答案
- 機電工程機械結構優化試題
- 2025年制造業工業互聯網平臺生態建設與運營模式創新研究
- 探索西方政治制度的國際比較試題及答案
- 安全防范試題及答案
- 軟件設計師考試職場案例分析試題及答案
- 企業決策中員工參與機制的優化
- 機電工程施工安全原則試題
- 公共服務的公平性與效率探討試題及答案
- 教學設計:鑄牢民族共同體意識
- 紅綠簡約小清新實拍一間自由生長的教室讀書分享
- 風力發電項目-強制性條文執行計劃
- 《銀屑病的診療進展》課件
- 2025年第六屆(中小學組)國家版圖知識競賽測試題庫及答案
- 2025年官方獸醫題庫及答案
- 天津市河北區2023-2024學年八年級下學期期末考試語文試題(無答案)
- 腹壁纖維肉瘤病因介紹
- 《小學教師專業發展》課程教學大綱
- 中藥治療口腔潰瘍
- 2024年河北省高考歷史試卷(含答案解析)
評論
0/150
提交評論