pil中所涉及的基本概念有如下幾個:通道(bands)、模式(mode)、尺寸(size)、座標系統(coordinate system)、調色盤(palette)、資訊(info)和濾波器(filters)。
1、通道
每張都是由乙個或者多個資料通道構成。pil允許在單張中合成相同維數和深度的多個通道。
以rgb影象為例,每張都是由三個資料通道構成,分別為r、g和b通道。而對於灰度影象,則只有乙個通道。
對於一張的通道數量和名稱,可以通過
方法getbands()來獲取。方法getbands()是image模組的方法,它會返回乙個字串元組(tuple)。該元組將包括每乙個通道的名稱。
python的元組與列表類似,不同之處在於元組的元素不能修改,元組使用小括號,列表使用方括號,元組建立很簡單,只需要在括號中新增元素,並使用逗號隔開即可。
方法getbands()的使用如下:
2、模式
影象的模式定義了影象的型別和畫素的位寬。當前支援如下模式:
1:1位畫素,表示黑和白,但是儲存的時候每個畫素儲存為8bit。
l:8位畫素,表示黑和白。
p:8位畫素,使用調色盤對映到其他模式。
rgb:3x8位畫素,為真彩色。
rgba:4x8位畫素,有透明通道的真彩色。
cmyk:4x8位畫素,顏色分離。
i:32位整型畫素。
f:32位浮點型畫素。
pil也支援一些特殊的模式,包括rgbx(有padding的真彩色)和rgba(有自左乘alpha的真彩色)。
可以通過mode屬性讀取影象的模式。其返回值是包括上述模式的字串。
屬性mode
的使用如下:
尺寸 通過size屬性可以獲取的尺寸。這是乙個二元組,包含水平和垂直方向上的畫素數。
屬性mode
的使用如下:
座標系統
pil使用笛卡爾畫素座標系統,座標(0,0)位於左上角。注意:座標值表示畫素的角;位於座標(0,0)處的畫素的中心實際上位於(0.5,0.5)。
座標經常用於二元組(x,y)。長方形則表示為四元組,前面是左上角座標。例如,乙個覆蓋800x600的畫素影象的長方形表示為(0,0,800,600)。 5、
調色盤
調色盤模式
("p")
使用乙個顏色調色盤為每個畫素定義具體的顏色值
6、資訊
使用info屬性可以為一張新增一些輔助資訊。這個是字典物件。載入和儲存影象檔案時,多少資訊需要處理取決於檔案格式。
屬性info的使用如下:
濾波器
對於將多個輸入畫素對映為乙個輸出畫素的幾何操作,pil提供了4個不同的取樣濾波器:
nearest
:最近濾波。從輸入影象中選取最近的畫素作為輸出畫素。它忽略了所有其他的畫素。
bilinear:
雙線性濾波。在輸入影象的
2x2矩陣上進行線性插值。注意:pil的當前版本,做下取樣時該濾波器使用了固定輸入模板。
bicubic:雙立方濾波。在輸入影象的4x4矩陣上進行立方插值。注意:pil的當前版本,做下取樣時該濾波器使用了固定輸入模板。
antialias:平滑濾波。這是pil 1.1.3版本中新的濾波器。對所有可以影響輸出畫素的輸入畫素進行高質量的重取樣濾波,以計算輸出畫素值。在當前的pil版本中,這個濾波器只用於改變尺寸和縮圖方法。
注意:在當前的pil版本中,antialias濾波器是下取樣(例如,將乙個大的影象轉換為小圖)時唯一正確的濾波器。biliear和bicubic濾波器使用固定的輸入模板,用於固定比例的幾何變換和上取樣是最好的。
image模組中的方法resize()和
thumbnail
()用到了濾波器。
方法resize()的使用如下:
方法resize()的定義為:resize(size, filter=none)=> image
對引數filter不賦值的話,方法resize()預設使用nearest濾波器。如果要使用其他濾波器可以通過下面的方法來實現:
>>>im_resize0 = im.resize((256,256), image.bilinear)
>>>im_resize0.size
(256, 256)
>>>im_resize1 = im.resize((256,256), image.bicubic)
>>>im_resize1.size
(256, 256)
>>>im_resize2 = im.resize((256,256), image.antialias)
>>>im_resize2.size
(256, 256)
方法thumbnail ()的使用如下:
方法thumbnail ()的定義為:im.thumbnail
這裡需要說明的是,方法thumbnail()需要保持寬高比,對於size=(200,200)的輸入引數,其最終的縮圖尺寸為(200, 112)。
對引數filter不賦值的話,方法thumbnail()預設使用nearest濾波器。如果要使用其他濾波器可以通過下面的方法來實現:
本文**:
基本概念 C 基本概念
由於工作中需要用到c 編寫的一些工具,有時候需要根據需求修改或者定製工具,所以現在不得不學習一下c 的基礎語法,此為筆記,不成章法!機器語言 組合語言 高階語言 面向過程的程式設計方法 物件導向的程式設計方法 泛型程式設計方法 1 演算法設計 2 源程式編輯 3 編譯 4 連線 5 執行除錯 輸入裝...
基本概念 數控系統基本概念
第一章 基本概念 數控工具機cnc是一種按事先編制好的加工零件程式進行加工的高效 自動化加工裝置。是 computer numerical control machine tools 的簡稱。數控工具機較好地解決了複雜 精密 小批量 多品種的零件加工問題,是一種柔性的 高效能的自動化工具機。西門子系...
pwm的基本概念
脈寬調變pwm是開關型穩壓電源中的術語。這是按穩壓的控制方式分類的,除了pwm型,還有pfm型和pwm pfm混合型。脈寬寬度調製式 pwm 開關型穩壓電路是在控制電路輸出頻率不變的情況下,通過電壓反饋調整其占空比,從而達到穩定輸出電壓的目的。pwm技術的基本原理 隨著電子技術的發展,出現了多種pw...