使用python進行基本的圖像操作與處理
前言:
與早期計算機視覺領域多數程序都是由 C/C++ 寫就的情形不同。隨著計算機硬件速度越來越快,研究者在考慮選擇實現算法語言的時候會更多地考慮編寫代碼的效率和易用性,而不是像早年那樣把算法的執行效率放在首位。這直接導致近年來越來越多的研究者選擇 Python 來實現算法。
今天在計算機視覺領域,越來越多的研究者使用 Python 開展研究,所以有必要去學習一下十分易用的python在圖像處理領域的使用,這篇博客將會介紹如何使用Python的幾個著名的圖像處理庫完成最基本的圖像操作與處理。
使用PIL進行基本圖像操作
PIL簡介:
PIL(Python Imaging Library Python,圖像處理類庫)提供了通用的圖像處理功能,以及大量有用的基本圖像操作,比如圖像縮放、裁剪、旋轉、顏色轉換等。
PIL讀取與存儲圖像:
利用 PIL 中的函數,我們可以從大多數圖像格式的文件中讀取數據,然后寫入最常見的圖像格式文件中。PIL 中最重要的模塊為 Image 。
下面這個程序我使用PIL讀取一張jpg圖片將其灰度化之后存為一個png文件:
# -*- coding: utf-8 -*-from PIL import Imageimport os#打開圖像得到一個PIL圖像對象img = Image.open("./source/test.jpg")#將其轉為一張灰度圖img = img.convert('L')#存儲該張圖片try: img.save("test.png")except IOError: print "cannot convert"Test.jpg

Test.png

PIL生成縮略圖:
# -*- coding: utf-8 -*-from PIL import Imageimport os#打開圖像得到一個PIL圖像對象img = Image.open("./source/test.jpg")#創建最長邊為128的縮略圖img.thumbnail((128,128))#存儲該張圖片try: img.save("test.png")except IOError: print "cannot convert"Test.png

PIL調整尺寸與旋轉:
# -*- coding: utf-8 -*-from PIL import Imageimport os#打開圖像得到一個PIL圖像對象img = Image.open("./source/test.jpg")#修改圖片大小,參數為一元組img = img.resize((100,200))#使圖片逆時針選擇45度img = img.rotate(45)#存儲該張圖片try: img.save("test.png")except IOError: print "cannot convert"Test.png

PIL復制粘貼圖像區域:
# -*- coding: utf-8 -*-# -*- coding: utf-8 -*-from PIL import Imageimport os#打開圖像得到一個PIL圖像對象img = Image.open("./source/test.jpg")#從img中裁剪指定區域region = img.crop((300,300,500,500))#使裁剪部分逆時針選擇145度region = region.rotate(145)#將該區域粘貼至指定區域img.paste(region,(100,100,300,300));#存儲該張圖片try: img.save("test.png")except IOError: print "cannot convert"
新聞熱點
疑難解答