Python 關於圖片處理PIL

Python PIL 

        PIL (Python Image Library) 庫是Python 語言的一個第三方庫,PIL庫支持圖像存儲、顯示和處理,能夠處理幾乎所有格式的圖片。

一、PIL庫簡介

1. PIL庫主要有2個方面的功能:

(1) 圖像歸檔:對圖像進行批處理、生產圖像預覽、圖像格式轉換等。

(2) 圖像處理:圖像基本處理、像素處理、顏色處理等。

2. PIL擁有多個類,此處就其中的Image類、ImageFilter類、ImageEnhance類做簡單介紹。

 

二、安裝庫函數

三、使用庫函數Image類 —— 基本圖像處理

1. 調用Image類

from PIL import Image

 

2. Image類關於圖像讀取與創建

方法

說明

Image.open(filename)

加載圖像文件

Image.new(mode,size,color)

根據給定參數創建新圖像

Image.open(StringIO.StringIO(buffer))

從字符串中獲取圖像

Image.frombytes(mode,size,color)

根據像素點創建新圖像

Image.verify()

對圖像完整性進行檢查,返回異常

 

 

3. Image類的常用屬性

方法

說明

Image.format

圖像格式或來源,若圖像不是從文件讀取,返回None

Image.mode

圖像的色彩模式,’L’爲灰度模式,’RGB’爲真彩色圖像,’C(青)M(品紅)Y(黃)K(黑)’爲出版圖像

Image.size

圖像的寬度和高度,單位是像素(px),返回值爲元組類型

Image.palette

調色板屬性,返回ImagePalette類型

 

4.Image類的序列圖像操作方法

方法

說明

Image.seek(frame)

跳轉並返回圖像中的指定幀

Image.tell()

返回當前幀的序號

 

 

5.Image類的圖像旋轉和縮放方法

方法

說明

Image.resize(size)

返回按size大小調整圖像的副本

Image.rotate(angle)

返回按angle角度旋轉圖像的副本

 

6.Image類的圖像轉換和保存方法

方法

說明

Image.save(filename,format)

將圖像保存爲filename文件名,format格式

Image.convert(mode)

將圖像轉換爲mode模式

Image.thumbnail(size)

創建圖像的縮略圖,size是縮略圖尺寸的元組

 

# -*- encoding:utf-8 -*-
''' 改變顏色 --- 顏色反轉'''
from PIL import Image
nest = Image.open("D:\\nest.jpg")
r,g,b = nest.split()           #獲取原圖的RGB通道的顏色值
newb = b.point(lambda i:i*1.1) #將B通道的顏色值增強
nest1 = Image.merge(nest.mode,(b,g,r))
nest1.thumbnail((400,254))     #創建縮略圖
nest1.save("D:\\nest_2.jpg")

7.Image類的圖像像素和通道處理方法

方法

說明

Image.point(func)

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

Image.split()

根據GRB圖像的每個顏色通道,返回圖像副本

Image.merge(mode,bands)

合成通道,其中mode爲色彩,bands爲新的色彩通道

Image.blend(im1,im2,alpha)

將2張圖片im1和im2按照公式插值後生成新圖像

公式:im1*(1.0 - alpha) + im2*alpha

 

 四、使用庫函數ImageFilter類 —— 圖像過濾

1.調用ImageFilter類

from PIL import ImageFilter

 

2. ImageFilter類預定義圖像過濾方法

方法

說明

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

圖像的銳化效果

# -*- encoding:utf-8 -*-
''' 輪廓效果 --- 素描 '''
from PIL import Image
from PIL import ImageFilter
square = Image.open("D:\\square.jpg")
square1 = square.filter(ImageFilter.CONTOUR)  #選擇輪廓效果
square1.save("D:\\square0.jpg")

複製代碼

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章