python PIL庫的使用


1PIL可以做很多和圖像處理相關的事情:

  • 圖像歸檔(Image Archives)PIL非常適合於圖像歸檔以及圖像的批處理任務。你可以使用PIL創建縮略圖,轉換圖像格式,打印圖像等等。
  • 圖像展示(Image Display)PIL較新的版本支持包括Tk PhotoImageBitmapImage還有Windows DIB等接口。PIL支持眾多的GUI框架接口,可以用於圖像展示。
  • 圖像處理(Image Processing)PIL包括了基礎的圖像處理函數,包括對點的處理,使用眾多的卷積核(convolution kernels)做過濾(filter),還有顏色空間的轉換。PIL庫同樣支持圖像的大小轉換,圖像旋轉,以及任意的仿射變換。PIL還有一些直方圖的方法,允許你展示圖像的一些統計特性。這個可以用來實現圖像的自動對比度增強,還有全局的統計分析等。

2PILImage類介紹

Image類中的函數

1. openfilename : 根據參數加載圖像文件。建議采用文件的全路徑,如下面的文件位於d盤中

 

from PIL import Image

im=Image.open("D:\\十二星座.png")

2. newmode,size,color: 這個函數創建一幅給定模式(mode)和尺寸(size)的圖片,如果省略color參數,則創建的圖片被黑色填充滿,如果 color 參數是 None 值,則圖片還沒初始化。

3. openStringIO.StringIO(buffer): 從字符串中獲取圖像。

4.frombytesmodesizedata):根據像素點(data)創建圖像

5.verify :對圖像文件完整性進行檢查,返回異常。

 

Image類的常用屬性

1.format:識別圖像格式或來源,如果圖像不是從文件中讀取,值為none

2.mode:圖像的色彩模式,'L'為灰色圖像,'RGB'為真彩色圖像,"CMYk"為出版圖像。

3.size:圖像寬度和高度,單位是像素,返回值為二元元組。

4.palette:調色板屬性,返回一個ImagePalette類型

查看已讀取的圖像文件的屬性如下:

print(im.format,im.size,im.mode)

JPEG (900,598),RGB

 

Image類的方法

1.seek(frame): 跳轉並返回圖像中的指定幀

2.tell():返回當前幀的序號

3.savefilenameformat):將圖像保存為filename文件名,format是圖片格式

4.convertmode):使用不同的參數,轉換圖像為新的模式

5.thumbnailsize):創建圖像的縮略圖,size是縮略圖尺寸的二元元祖

6.resizesize):按size大小調整圖像,生成副本。

7.rotateangle):按angle角度旋轉角度,生成副本。

8.pointfunc:根據函數func的功能對每個元素進行運算,返回圖像副本、

9.split(): 提取RGB圖像的每個顏色通道,返回圖像副本、

10.mergemodebands):合並通道,其中mode表示色彩,bands表示新的色彩通道。

11.blendim1im2alpha: 將兩幅圖片im1im2按照如下公式插值后生成新的圖im3im1*1.0-alpha+im2*alpha

我做的一個實例:

from PIL import Image

from PIL import ImageFilter

from PIL import ImageEnhance

im=Image.open("d:\\十二星座.png")

om=im.filter(ImageFilter.CONTOUR)

om=ImageEnhance.Contrast(im)

om.enhance(120).save("d:\\十二星座.png")

一開始的圖片是

使用Image類后

 

2.對一張圖片生成縮略圖

from PIL import Image

from PIL import ImageFilter

from PIL import ImageEnhance

im=Image.open("d:\\猴猴厚.png")

im.thumbnail((128,128))

im.save("d:\\猴猴厚.png","png")

兩張圖做對比:

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM