Python的圖像處理庫Pillow使用教程

2021-03-02 同福編程
1. 介紹1.1 介紹

福哥今天要詳情的跟大家講講圖像處理庫Pillow的使用技巧,Pillow是一個非常強大的圖像處理庫,基本可以滿足日常使用當中的所有圖片加工的需求。

學會Pillow庫的使用技巧,就可以對我們的照片進行自動化的加工處理了。

2. 格式轉換

可以使用convert方法轉換圖片模式

2.1 參數說明

1 (1-bit pixels, black and white, stored with one pixel per byte)

L (8-bit pixels, black and white)

P (8-bit pixels, mapped to any other mode using a colour palette)

RGB (3x8-bit pixels, true colour)

RGBA (4x8-bit pixels, true colour with transparency mask)

CMYK (4x8-bit pixels, colour separation)

YCbCr (3x8-bit pixels, colour video format)

I (32-bit signed integer pixels)

F (32-bit floating point pixels)

2.2 示例

下面給出一個示例,將圖片打開後,轉換成黑白色的圖片,並保存起來

from PIL import Image
im = Image.open("demo.jpg")im = im.convert("1")im.save("demo_bw.jpg")

原圖

轉換後

3. 濾鏡

可以使用filter方法對圖片使用濾鏡進行處理

3.1 參數

高斯模糊 ImageFilter.GaussianBlur

普通模糊 ImageFilter.BLUR

邊緣增強 ImageFilter.EDGE_ENHANCE

找到邊緣 ImageFilter.FIND_EDGES

浮雕 ImageFilter.EMBOSS

輪廓 ImageFilter.CONTOUR

銳化 ImageFilter.SHARPEN

平滑 ImageFilter.SMOOTH

細節 ImageFilter.DETAIL

3.2 示例

下面給出一個例子,打開一張圖片,對圖片鏡像模糊處理,並保存起來

from PIL import Imagefrom PIL import ImageFilter
im = Image.open("demo.jpg")im = im.filter(ImageFilter.BLUR) im.save("demo_blur.jpg")

原圖

加工後

4. 對比度

調整圖片對比度可以使用ImageEnhance庫

4.1 示例

下面給出一個例子

from PIL import Imagefrom PIL import ImageEnhance
im = Image.open("demo.jpg")
mod = ImageEnhance.Brightness(im)im = mod.enhance(1.2)
mod = ImageEnhance.Color(im)im = mod.enhance(1.2)
mod = ImageEnhance.Contrast(im)im = mod.enhance(1.2)
mod = ImageEnhance.Sharpness(im)im = mod.enhance(1.2)
im.save("demo_mod.jpg")

原圖

加工後

5. 旋轉

可以使用rotate進行任意角度的旋轉,也可以使用transpose進行特殊角度的旋轉

5.1 transpose參數
5.2 示例
from PIL import Image
im = Image.open("demo.jpg")im = im.rotate(15)im.save("demo_rotate.jpg")
im = Image.open("demo.jpg")im = im.transpose(Image.FLIP_LEFT_RIGHT)im.save("demo_flip.jpg")

原圖

加工後

6. 類型轉換

使用pillow轉換圖片類型就是直接存成響應的擴展名的圖片即可

6.1 示例

轉成png類型

from PIL import Image
im = Image.open("demo.jpg")im = im.convert("RGB")im.save("demo.png")

7. 縮放

可以使用resize方法簡單的對圖片的尺寸繼續縮放

7.1 示例

將圖片縮小至300*230尺寸

from PIL import Image
im = Image.open("demo.jpg")im = im.resize((300, 230))im.save("demo_resize.jpg")

8. 圖層

我們可以把圖片想成一張圖紙,可以使用裁剪技巧將圖紙的一部分複印到另一張圖紙上,也可以將多張圖紙壓合成一張圖紙,這種圖紙可以稱之為——圖層,和PS軟體類型的處理

8.1 裁剪

使用crop方法從一張圖片上裁剪下拉一部分圖像放到一個圖層裡,這個圖層可以單獨進行加工處理

8.2 粘貼

使用paste方法將一個圖像放到另外一個圖像裡面,合併這兩個圖層到一起

8.3 示例

從圖片中間裁剪出來一小塊圖像,經過黑白處理後,再粘貼回去,合併成一張新圖片

from PIL import Image
im = Image.open("demo.jpg")rect = (500, 250, 800, 550)part = im.crop(rect)part = part.convert("1")im.paste(part, rect)im.save("demo_mod.jpg")

原圖

加工後

9. 屏幕截圖

使用ImageGrab實現屏幕截圖的功能

9.1 示例

截取全屏畫面,存到一個文件裡

from PIL import ImageGrab
im = ImageGrab.grab()im.save("demo_fullscreen.jpg")

截取屏幕左上角的500*500的區域畫面

from PIL import ImageGrab
im = ImageGrab.grab((0, 0, 500, 500))im.save("demo_part.jpg")

10. 總結

Pillow功能很多,而且方法很友好,可以用來對自己的照片進行批量加工處理使用。

今天福哥就給大家介紹到這裡了~~

免費看文章,自己學技術

每一篇文章都是福哥一個字一個字地敲出來的,都是福哥原創的。

每一篇文章都是經過了福哥的反覆驗證的,都是可以正常使用的。

相關焦點

  • 在Windows配置Python的圖像處理(pillow,matplotlib,opencv)
    介紹1.1 介紹Python處理圖像有幾個常用的庫,包括Pillow、Matplotlib、OpenCV,今天童鞋們就跟著福哥對這三種庫進行一個初步了解吧。我們先學習這三個庫的安裝方法,再學習這三個庫的基本使用方法,大家可以根據實際情況進行選擇。2.
  • Python PIL庫圖像處理基本操作
    介紹    PIL(Python Image Library)是python的第三方圖像處理庫,但是由於其強大的功能與眾多的使用人數,幾乎已經被認為是python官方圖像處理庫了。其官方主頁為:PIL。
  • Python 進階必備:圖像庫 pillow
    印象中大約是2015年前後(網上檢索不到這一段歷史),PIL 不再有更新,取而代之的,則是 PIL 的嫡傳分支 pillow —— 完全繼承了 PIL 的 API,且支持 py3 的圖像庫。儘管我們在提到圖像處理時經常會提到 PIL,但一般情況下是指 pillow。
  • Python中的十大圖像處理工具
    當今世界充滿了各種數據,而圖像是其中高的重要組成部分。然而,若想其有所應用,我們需要對這些圖像進行處理。圖像處理是分析和操縱數字圖像的過程,旨在提高其質量或從中提取一些信息,然後將其用於某些方面。圖像處理中的常見任務包括顯示圖像,基本操作(如裁剪、翻轉、旋轉等),圖像分割,分類和特徵提取,圖像恢復和圖像識別等。
  • Python Pillow(PIL)庫的用法介紹
    在Python2中,PIL(Python Imaging Library)是一個非常好用的圖像處理庫,但PIL不支持Python3,所以有人
  • 教程 | 如何使用python來繪製自己喜歡的圖片呢
    在繪製圖片之前我們來了解python用是哪個庫來繪製圖片的吧Python圖像處理庫--PIL,全稱Pillow    PIL基本的圖像處理功能:改變圖像大小,旋轉圖像,圖像格式轉換,色彩轉換,圖像增強,直方圖處理等等。
  • Python自動控制滑鼠中鍵滾動並截屏保存圖像
    win10+Python 3.8.2+pywin32+pillow2)執行命令pip install pillow安裝擴展庫pillow。使用方法:提前打開一個窗口或WEB頁面,然後運行上面的代碼,再用滑鼠單擊要截屏的窗口把它切換到前臺,剩下的事情就交給這個程序了。
  • Python Pillow(PIL)庫的用法介紹(二)
    如果圖像的模式為'1'或'P',則始終設置為Image.NEAREST。fill, 填充。如果method參數是一個Image.ImageTransformHandler對象,fill是傳給轉換方法的一個參數,否則,fill無效。fillcolor, 填充顏色。超出原圖區域的部分使用此顏色填充。
  • OpenCV使用CUDA處理圖像的教程與實戰
    在單張圖像上使用在多張圖像上使用對多張圖像使用Dask進行並行延時處理我們需要創建GPU空間(GPU_frame)來保存圖像(就像相框保存圖片一樣),然後才能將圖像上傳到>gpu_frame.upload(screenshot)第2步:處理圖像OpenCV CUDA函數返回cv2.cuda_GpuMat(GPU矩陣),因此每個結果都可以在用戶不必重新上傳的情況下進行操作。
  • OpenCV 教程 之 圖像處理
    -i https://pypi.tuna.tsinghua.edu.cn/simple# 注意需要安裝numpy庫,這是Python中進行矩陣操作與運算庫,類似與MATLAB運算2、圖像處理基本操作在圖像處理過程中,讀取圖像、顯示圖像、保存圖像是最基本的操作。
  • python圖像處理 PIL 庫學習基礎篇(1)
    print(im.format, im.size, im.mode)'''Convert類'''# new_im = im.convert('L')# new_im.show()# new_im.save('C:/Users/Lightlefter/Desktop/2.jpg')Python Imaging Library 為 Python 解釋器提供了圖像處理的功能
  • Python圖像處理之圖片文字識別(OCR)
    可以實現OCR 的底層庫並不多,目前很多庫都是使用共同的幾個底層OCR 庫,或者是在上面進行定製。  Tesseract 是一個OCR 庫,目前由Google 贊助(Google 也是一家以OCR 和機器學習技術聞名於世的公司)。Tesseract 是目前公認最優秀、最精確的開源OCR 系統。  除了極高的精確度,Tesseract 也具有很高的靈活性。
  • 【乾貨】計算機視覺實戰系列03——用Python做圖像處理
    Numpy基本操作和圖像灰度變換Python中有好多工具包應用於圖像處理當中,本章作為入門章節,首先來介紹Python中最基本的幾個工具包,也希望讀者可以在之後自行練習。 ▌NumpyNumpy中的數組對象可以幫助我們進行數組的重要操作,比如矩陣乘積、轉置、解方程系統、向量乘積歸一化,通過這些操作,我們可以對圖像進行建模、圖像分類、圖像聚類等複雜的圖像處理工作。
  • 13個Python GUI庫
    Python使用動態類型系統,並具有自動內存管理功能。Python支持多種編程範式,其中包括:圖形用戶界面(GUI)GUI是一個人機互動的界面,換句話說,它是人類與計算機交互的一種方法。GUI主要使用窗口,圖標和菜單,也可以通過滑鼠和鍵盤進行操作。GUI庫GUI庫包含部件。部件是一系列圖形控制元素的集合。在構建GUI程序時,通常使用層疊方式。
  • 【乾貨】計算機視覺實戰系列06——用Python做圖像處理
    【導讀】專知成員Hui上一次為大家介紹主成分分析(PCA)、以及其在圖像上的應用,這一次為大家詳細講解SciPy庫的使用以及圖像高斯模糊實戰。
  • AI 消除馬賽克,開源項目上線,文末附教程
    https://github.com/beurtschipper/DepixDepix 能夠從像素化圖像截圖中恢復原圖中包含的文字密碼。該項目適用於使用線性方框濾波器(linear box filter)創建的像素化圖像。如下圖所示,項目作者給出了像素化圖像、恢復之後的效果和原圖的對比結果:馬賽克打得夠嚴實了,不過 Depix 還是基本解讀出了被隱藏的信息。
  • OpenCV之圖像處理基礎
    需要說明的是,在使用面向python的OpenCV必須熟練掌握Numpy庫,尤其是Numpy.array庫是python處理圖像的基礎。圖像的基本表示方法這裡只討論二值圖像、灰度圖像、彩色圖像的基本表示方法。二值圖像二值圖像是指僅僅包含黑色和白色兩種顏色的圖像。在計算機中,將白色像素點處理為「1」,將黑色像素點處理為「0」,以方便進行後續的存儲和處理等操作。
  • 使用Python+OpenCV實現圖像數據採集
    conda create -n opencv python=3.6這將在Python版本3.6中創建一個名為opencv的新環境,可以用正在使用的任何版本替換它。pip install opencv-python用CV2拍照接下來,我們必須創建一個視頻捕獲實例。
  • python圖像識別---------圖片相似度計算
    從機器學習的的角度來說,首先要提取圖片的特徵,將這些特徵進行分類處理,訓練並建立模型,然後在進行識別。通過運行結果知道img2和img3是值是最為相似的(代碼calcImage.py)上面的是直接調用opencv中的方法來實現的,下面還有自己寫的方法:首先是將圖片轉化為RGB格式,在這裡是用的pillow
  • 【Rust每周一庫】image-rs - Rust下的圖像處理庫
    Rust下的圖像處理庫,image-rs。根據Github倉庫頁面的介紹,image-rs提供了基礎的圖像處理功能和圖像格式轉換功能。所有的圖像處理函數都通過GenericImage和ImageBuffer完成。