python影像處理之PIL庫

  • 2019 年 11 月 2 日
  • 筆記
  • PIL庫是python語言第三方庫,需要通過pip工具安裝,安裝庫的名字是pillow。

  PIL庫支援影像存儲,顯示和處理,它能夠處理幾乎所有圖片格式,可以完成對影像的縮放,裁剪,疊加以及向影像添加線條,影像和文字等操作。

    功能需求:

  1. 影像歸檔:對影像進行批處理,生成影像預覽,影像格式轉換等。
  2. 影像處理:影像基本處理,像素處理,顏色處理等。 
  • PIL庫Image類解析

  導入方法:from PIL import Image

  要載入一個影像文件,最簡單的形式如下,之後所有操作對im起作用

from PIL import Image  im=Image.open("H:\Google下載\b.jpg")

  常用屬性:

  1. format:源文件的文件格式。如果是由PIL創建的影像,則其文件格式為None。
  2. mode:影像的模式。這個字元串表明影像所使用像素格式。該屬性典型的取值為“1”,“L”,“RGB”或“CMYK”。
  3. size:影像的尺寸,按照像素數計算。它的返回值為寬度和高度的二元組(width, height)。
  4. palette:顏色調色板表格。如果影像的模式是“P”,則返回ImagePalette類的實例;否則,將為None。

  微實例:

from PIL import Image  im=Image.open("H:\Google下載\b.jpg")  print(im.format,im.size,im.mode)

 

 

   微實例:

  交換影像的顏色。可以通過分離RGB圖片的3個顏色通道實現顏色互換。

from PIL import Image  im=Image.open("H:\Google下載\b.jpg")  r,g,b=im.split()  om=Image.merge("RGB",(b,g,r))  om.save("H:\Google下載\b.jpg")

交換前:

交換後:

  • PIL庫ImageFilter類解析
  1. BLUR:模糊濾鏡。會使圖片較原先的模糊一些。
  2. CONTOUR:等高線。也就是輪廓濾波,將影像中的輪廓資訊提取出來。
  3. DETALL:細節。也就是細節增強濾波,它會顯化圖片中細節。
  4. EDGE_ENHANCE:邊緣強化。邊緣增強濾波,突出、加強和改善影像中不同灰度區域之間的邊界和輪廓的影像增強方法。經處理使得邊界和邊緣在影像上表現為影像灰度的突變,用以提高人眼識別能力。
  5. EDGE_ENHANCE_MORE :邊緣更強。深度邊緣增強濾波,會使得影像中邊緣部分更加明顯。
  6. EMBOSS :浮雕。浮雕濾波,會使影像呈現出浮雕效果。
  7. FIND_EDGES :邊緣查找。尋找邊緣資訊的濾波,會找出影像中的邊緣資訊。
  8. SMOOTH :光滑。平滑濾波,突出影像的寬大區域、低頻成分、主幹部分或抑制影像雜訊和干擾高頻成分,使影像亮度平緩漸變,減小突變梯度,改善影像品質。
  9. SMOOTH_MORE:更加光滑。深度平滑濾波,會使得影像變得更加平滑。
  10. SHARPEN:銳化。銳化濾波,補償影像的輪廓,增強影像的邊緣及灰度跳變的部分,使影像變得清晰。

  微實例: 

from PIL import Image  from PIL import ImageFilter  im=Image.open("H:\Google下載\b.jpg")  om=im.filter(ImageFilter.CONTOUR)  om.save("H:\Google下載\b.jpg")

處理後: