一、PIL庫簡介
1.安裝PIL庫
PIL庫是Python的第三方庫,需要手動通過pip工具安裝。
可通過cmd命令:pip install pillow 進行安裝。(注意:出現pip不是內部處理命令時需要配置一下環境)。
2.PIL庫的功能
PIL庫支持圖像存儲、顯示和處理,它能夠處理幾乎所有的圖片格式,可以完成對圖像的縮放、剪裁、疊加以及向圖像添加線條、圖像和文字等操作。
具體如下:
(1)圖像歸檔:對圖像進行批處理,生成圖像預覽圖,圖像格式轉換等。
(2)圖像處理:圖像基本處理,像素、顏色處理等。
二、PIL庫使用
3.PIL庫Image類解析
(1)Image類的圖像讀取和創建方法:
Image.open(filename) 根據所給的參數進行加載圖片的操作
Image.new(mode,size,color) 根據給定的參數創建一個新的圖像
Image.open(StringIO.StringIo(buffer)) 從字符串中獲取圖像
Image.frombytes(mode,size,data) 根據像素點data創建圖像
Image.verify() 對圖像文件完整性進行檢查,返回異常
通過Image打開圖像文件時,圖像的柵格數據不會直接被解碼或者加載,程序只是讀取了圖像文件頭部的元數據信息,這部分信息標識了圖像的格式、顏色、大小等。
因此,打開一個文件會十分的迅速,與圖像的存儲和壓縮方式無關。
加載一個圖像文件的方法:
(2)Image類的常用屬性
Image.dormat 標識圖像格式或來源,如果圖像不是從文件讀取,值為None
Image.mode 圖像的色彩模式,“L”為灰度圖像,“RGB”為真彩色圖像,“CMYK”為出版圖像
Image.size 圖像的寬度和高度,單位是像素(px),返回值是二元元組(tuple)
Image.palette 調色板屬性,返回一個ImagePalette類型
查看已讀取的圖像文件屬性:
打印結果為:
拓展:
CMYK色彩是彩色印刷時采用的一套色彩體系,也成印刷四色。印刷中顏色混合原理不一樣,其中C是青色,M是紅色,Y是黃色以及K是定位套版色(黑色)。
(3)Image類的序列圖像操作方法
Image.seek(frame) 跳轉並返回圖像中的指定幀
Image.tell() 返回當前幀的序號
如:
(4)其他方法:
Image類的圖像轉換和保存方法:
Image.save(filename,format) 將圖像保存為filename文件名,format是圖片格式
Image.convert(mode) 使用不同的參數,轉換圖像為新的模式
Image.thumbnail(size) 創建圖像的略縮圖,size是略縮圖尺寸的二元元組
Image類的圖像旋轉和縮放方法
Image.resize(size) 按size的大小調整圖像,生成副本
Image.rotate(angle) 按angle的角度旋轉圖像,生成副本
Image類的圖像像素和通道處理方法
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*alpha 插值后生成新圖像
如交換圖像中的顏色:
如對圖像的每個像素點操作:
(5)拓展
PIL庫的ImageFilter和ImageEnhance類提供了過濾圖像和增強圖像的方法
ImageFilter類的預定義過濾方法:
ImageFilter.BLUR 圖像的模糊效果
ImageFilter.CONTOUR 圖像的輪廓效果
ImageFilter.DETALE 圖像的細節效果
ImageFilter.EDGE_ENHANCE 圖像的邊界加強效果
ImageFilter.EDGE_ENHANCE_MORE 圖像的閾值邊界加強效果
ImageFilter.EMBOSS 圖像的浮雕效果
ImageFilter.FIND_EDGES 圖像的邊界效果
ImageFilter.SMOOTH 圖像的平滑效果
ImageFilter.SMOOTH_MORE 圖像的閾值平滑效果
ImageFilter.SHARPEN 圖像的銳化效果
利用Image類的filter()方法可以使用ImageFilter類,方法如下:
Image.filter(ImageFilter.function) (注:function為BLUR、CONTOUR、DETALE等功能)
如獲取圖像輪廓:
ImageEnhance類的圖像增強和濾鏡方法:
ImageEnhance.enhance(factor) 對選擇屬性的數值增強factor倍
ImageEnhance.Color(im) 調整圖像的顏色平衡
ImageEnhance.Contrast(im) 調整圖像的對比度
ImageEnhance.Brightness(im) 調整圖像的亮度
ImageEnhance.Sharpness(im) 調整圖像的銳度
如增強圖像的對比度為初始的20倍:
僅作為個人Python學習筆記