




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
PythonPIL基本概念和Image類(lèi)基本操作PIL基本概念PIL中所涉及的基本概念有如下幾個(gè):通道(bands)、模式(mode),尺寸(size)坐標(biāo)系統(tǒng)(coordinatesystem)、調(diào)色板(palette)、信息(info)和濾波器(filters)通道:每張圖片都是由一個(gè)或者多個(gè)數(shù)據(jù)通道構(gòu)成。PIL允許在單張圖片中合成相同維數(shù)和深度的多個(gè)通道。以RGB圖像為例,每張圖片都是由三個(gè)數(shù)據(jù)通道構(gòu)成,分別為R、G和B通道。而對(duì)于灰度圖像,則只有一個(gè)通道。對(duì)于一張圖片的通道數(shù)量和名稱(chēng),可以通過(guò)getbands()方法來(lái)獲取。getbands()方法是Image模塊的方法,它會(huì)返回一個(gè)字符串元組(tuple)。該元組將包括每一個(gè)通道的名稱(chēng)。getbands()方法的使用如下:In[47]:fromPILimportImageIn[48]:img=Image.open(1tl.bmp1)In[49]:img.getbands()Out[49]:(R,G,B)模式:圖像的模式定義了圖像的類(lèi)型和像素的位寬。當(dāng)前支持如下模式:1:1位像素,表示黑和白,但是存儲(chǔ)的時(shí)候每個(gè)像素存儲(chǔ)為8btL:8位像素,表示黑和白。P:8位像素,使用調(diào)色板映射生度他融。I:32位處像素,F(xiàn):32位浮點(diǎn)型像素。RGB:3x8位像素,為真彩色RGBA:4x8位像素,有透明通道的真彩包CMYK:4x8位像素,顏色分離。YCbCr:3x8位像素,融酶就,硼RGBX(有paddingm?絕)和RGBa(有自頡)o可以通過(guò)mode屬性讀取圖像的模武簸回值是既上述融的字符mode屬性的使用如下:In[51]:img.modeOut[51]:fRGBf尺寸:通過(guò)size屬性可以獲取圖片的尺寸。這是一個(gè)二元組,包含水平和垂直方向上的像素?cái)?shù)。size屬性的使用如下:In[52]:img.sizeOut[52]:(1761,2344)坐標(biāo)系統(tǒng):PIL使用笛卡爾像素坐標(biāo)系統(tǒng),坐標(biāo)(0,0)位于左上角。注意:坐標(biāo)值表示像素的角;位于坐標(biāo)(0,0)處的像素的中心實(shí)際上位于(0.5,0.5)o調(diào)色板:調(diào)色板模式(〃P〃)使用一個(gè)顏色調(diào)色板為每個(gè)像素定義具體的顏色值。信息:使用info屬性可以為一張圖片添加一些輔助信息。這個(gè)是字典對(duì)象。加載和保存圖像文件時(shí),多少信息需要處理取決于文件格式。info屬性的使用如下:In[53]:Out[53]:{‘dpi':(201,201)1compression1:0}濾波器:對(duì)于將多個(gè)輸入像素映射為一個(gè)輸出像素的幾何操作,PIL提供了4個(gè)不同的采樣濾波器。在當(dāng)前的PIL版本中,ANTIALIAS濾波器是下采樣時(shí)唯一正確的濾波器。BILIEAR和BICUBIC濾波器使用固定的輸入模板,用于固定比例的幾何變換和上采樣是最好的。Image模塊中的方法resize。和thumbnail()用到了濾波器。resize()方法的定義為:resize(size,filter二None)二〉imageresize。函數(shù)接受一個(gè)元組,指定圖像的新大小。resize。方法的使用如下:In[57]:img.sizeOut[57]:(1761,2344)In[58]:r=img.resize((256)256))In[59]:r.sizeOut[59]:(256,256)對(duì)參數(shù)filter不賦值的話(huà),resize。方法默認(rèn)使用NEAREST濾波器。thumbnail()方法的定義為:thumbnail(size,filter=None)thumbnail()方法按比例縮小,size參數(shù)只規(guī)定修改后size的最大值。thumbnail()方法的使用如下:In[60]:img.sizeOut[60]:(1761,2344)In[61]:img.thumbnail((200^200))?一:img.sizeOut[61]:(150,200)對(duì)參數(shù)filter不賦值的話(huà),方法thumbnail。默認(rèn)使用NEAREST濾波器。resize()方法與thumbnail()方法比較:resize。方法可以縮小也可以放大,而thumbnail()方法只能縮??;resize。方法不會(huì)改變對(duì)象的大小,只會(huì)返回一個(gè)新的Image對(duì)象,而thumbnail()方法會(huì)直接改變對(duì)象的大小,返回值為none;resize。方法中的size參數(shù)直接規(guī)定了修改后的大小,而thumbnail()方法按比例縮小,size參數(shù)只規(guī)定修改后size的最大值。Image類(lèi)基本操作一.打開(kāi)圖片文件并讀取圖片信息1.涉及方法:image=Image,open(file,mode)#打開(kāi)一個(gè)圖像,file是文件地址,mode可以缺省,但存在時(shí)必須為ro在image被處理前圖片都不會(huì)被加載(如果想強(qiáng)制加載,請(qǐng)用had模型)im.show()#展示一個(gè)圖片。此方法主要用于檢查錯(cuò)誤。#在Unix平臺(tái)上,此方法將圖片保存到一個(gè)臨時(shí)的PPM文件,并且調(diào)用xv程序#在Windows系統(tǒng)上,此方法將圖片保存到一個(gè)臨時(shí)的BMP文件,并使用標(biāo)準(zhǔn)的BMP顯示程序來(lái)展示它。#此方法返回空。2.操作演示:In[4]:fromPILimportImageIn[5]:img=Image.open(1rgb.bmp1)In[6]:print(img.format?img.mode?img.size)BMPRGB(1770,797)In[7]:print(img.width?)1770797{'dpi':(0?0),1compression1:0}In[8]:img.show()二,復(fù)制和存儲(chǔ)圖像,創(chuàng)建縮略圖1.涉及方法:image=im.copy()#復(fù)制圖片。如果你想復(fù)制圖片到一個(gè)圖片并保留原圖,就使用此方法。im.save(outfile,options---)im.save(outfile,format,options---)#以給定的文件名保存圖片。如果格式(format)被忽略,格式由文件名的擴(kuò)展名決定,此方法返回Noneoim.thumbnail(size)im.thumbnail(size,filter)#修改圖片使其包含一個(gè)比給定size小的自己的縮略圖。此方法計(jì)算一個(gè)適當(dāng)?shù)目s略圖大小的來(lái)保存此圖片的面貌,調(diào)用draft方法來(lái)配置文件閱讀器(適用時(shí)),并最終調(diào)整圖片的大小。#fiIter參數(shù)可以是NEAREST,BILINEAR,BICUBIC,orANTIALIAS(效果最好)之一,如果缺省,則默認(rèn)為NEAREST。#注意在最新版本的PIL中,雙線(xiàn)性和三次樣條過(guò)濾器并不是非常適合縮略圖的生成。你應(yīng)當(dāng)使用ANTIALLAS除非速度比質(zhì)量更重要。#同樣注意,這個(gè)方法會(huì)在原圖上修改。如果你同樣需要使用全分辨率的原圖片,請(qǐng)?jiān)谠瓐D的復(fù)制品(例如用copy方法)上使用此方法。此方法返回None。2.操作演示:fromPILimportImageimg=Image.open('rgb.bmp1)img2=img.copy()11img2.thumbnail((128?128))12img2.save('rgb2.jpeg1)三.縮放和旋轉(zhuǎn)圖像.涉及方法:image=im.resize(size)image二im.resize(size,filter)#返回一個(gè)調(diào)整過(guò)大小的圖片的復(fù)制品。size參數(shù)給出一個(gè),以像素為單位的二維元組(weight,height)#參數(shù)filter可以是NEAREST(使用臨近取樣),BILINEAR(在2x2環(huán)境中的線(xiàn)性插值),BICUBIC(在4x4環(huán)境下的三次樣條插值),或者ANTIALIAS(一個(gè)高質(zhì)量的下采樣過(guò)濾器),如果缺省,或圖像的模式為“1”或者如”,它將被設(shè)置為NEAREST。image=im.rotate(angle)image=im.rotate(angle,filter=NEAREST,expand=0)#返回一個(gè)圍繞圖片中心順時(shí)針旋轉(zhuǎn)angle度的圖片的復(fù)制品。#如果參數(shù)expand為真,表示輸出圖片應(yīng)該足夠大來(lái)裝下旋轉(zhuǎn)過(guò)的圖片。其缺省值為假,輸出圖片與輸入有一樣的尺寸。image=im.transpose(method)#返回一個(gè)翻轉(zhuǎn)或旋轉(zhuǎn)的圖片的復(fù)制品#method可以是下列之一:FLIP_LEFT_RIGHT,FLIP_TOP_BOTTOM,R0TATE_90,R0TATE_180,orR0TATE_270o.操作演示:fromPILimportImageimg=工mage.open('前景圖?jpg')img.show()#查看前景圖img=img.resize((600?#將圖片進(jìn)行縮放img=img.rotate(60)撲對(duì)圖片進(jìn)行旋轉(zhuǎn)img.show()#查看旋轉(zhuǎn)的圖片img=img.transpose(Image.FLIP_LEFT_RIGHT)#對(duì)圖片進(jìn)行水平翻轉(zhuǎn)img.show()#查看旋轉(zhuǎn)的圖片四.裁剪,粘貼和合并圖像.涉及方法:image=im.crop(box)#返回一個(gè)從原圖上的一個(gè)矩形區(qū)域的復(fù)制。box是一個(gè)4維元組,定義了左,上,右和下的像素候選區(qū)(其實(shí)就是左上和右下的坐標(biāo),坐標(biāo)原點(diǎn)在左上角)。im.paste(image,box)#將其他的圖片粘貼到這張圖片上。這個(gè)box參數(shù)是一個(gè)提供上左角的2元組,或是一個(gè)提供左,上,右,下的4維元組候選區(qū),或是空(None或者(0,0))如果提供了4維元組,被粘貼的圖片必須與這個(gè)元組所確定的的區(qū)域的尺寸相符。#如果兩張圖片的模式(RGB,灰度,位圖)不同,被粘貼的圖片將轉(zhuǎn)化成本圖片的模式(詳情參考convert方法)。im.paste(colour,box)#同上,但是在相應(yīng)區(qū)域填充單一顏色。在im是單通道圖片時(shí),color為單個(gè)數(shù)值,而當(dāng)im是多通道圖片時(shí),color是一個(gè)元組。im.paste(image,box,mask)#同上,但是只更新被mask所指明的區(qū)域。你可以使用"1“JL”JRGBA"(分別是位圖,灰度,RGB)圖片(在后者,第一個(gè)通道(alphaband)被用作mask)。mask上的值為255的地方,按照被選圖片(image)復(fù)制。mask上的值為0的地方,保留原圖。mask上的中間值可以視為透明效果。#注意如果你粘貼一個(gè)“RGBA”圖片,第一個(gè)通道(alpha)通道會(huì)被忽略。你可以把這個(gè)圖片同時(shí)當(dāng)做源圖片或是mask。im.paste(colour,box,mask)同上,但是在mask所指明的區(qū)域填充單色.操作演示:fromPILimportImage'#加載底圖1img=工mage.open(,底圖■jpg')img.show()#查看底圖!box=(360,48)510,335)#底圖上需要P綽的區(qū)域?#加載需要P上去的圖片.tmp_img=工mage.open(,前景圖?jpg1)[#這里可以選擇一塊區(qū)域或者整張圖片region=tmp_img.crop((390?10?690?470))井選擇一塊區(qū)域region.show()#查看前景圖!#或者使用整張圖片^region=tmp_img.copy()i#注意}region的大小必須顯ox的大小完全匹配。#提前將圖片進(jìn)行縮放,以適應(yīng)box區(qū)域大小region=region.resize((box[2]-box[0]ybox[3]-box[1]))img.past?(regionbox).img.show()#查看合成晶圖片img.save(1.
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025春季陜汽控股社會(huì)招聘考前自測(cè)高頻考點(diǎn)模擬試題及答案詳解(各地真題)
- 2025江蘇蘇州凌曄進(jìn)出口有限公司招聘7人模擬試卷及答案詳解1套
- 2025年渤海鉆探工程有限公司春季招聘(20人)模擬試卷及答案詳解(全優(yōu))
- 2025貴州銅仁市玉屏侗族自治縣事業(yè)單位綜合管理類(lèi)引進(jìn)高層次及急需緊缺人才12人模擬試卷及答案詳解(各地真題)
- 2025湖南株洲市自然資源和規(guī)劃局選聘模擬試卷附答案詳解
- 市政管道施工環(huán)境影響評(píng)估方案
- 戶(hù)外景觀藝術(shù)裝置設(shè)計(jì)方案
- 商業(yè)區(qū)景觀環(huán)境建設(shè)方案
- 大學(xué)生輿情引導(dǎo)與公共危機(jī)治理中的信息整合模式
- 北京市技工院校教學(xué)管理辦法2025
- 高中日語(yǔ)學(xué)習(xí)宣講+課件
- 公路交通安全設(shè)施工高級(jí)工培訓(xùn)內(nèi)容
- 2023年中國(guó)通用技術(shù)(集團(tuán))控股有限責(zé)任公司招聘筆試題庫(kù)含答案解析
- 生物技術(shù)與農(nóng)業(yè)
- GB/T 5668-2017旋耕機(jī)
- GB/T 3141-1994工業(yè)液體潤(rùn)滑劑ISO粘度分類(lèi)
- 動(dòng)物資源保護(hù)與利用
- 癌癥病人三階梯止痛治療原則標(biāo)準(zhǔn)課件
- 顱腦損傷患者護(hù)理查房課件
- 角膜炎(歡迎觀看)課件
- 少先隊(duì)大隊(duì)委候選人推薦表
評(píng)論
0/150
提交評(píng)論