1. 程式人生 > >Python3 簡單的影象處理方法

Python3 簡單的影象處理方法

最近需要學習python的影象處理方法,在這裡簡單的總結一下自己學到的一些影象處理的方法把~

1.Python PIL庫讀取影象

import PIL
from PIL import Image

im = Image.open(filepath)

2.簡單進行影象旋轉

out = im.rotate(270) #這裡輸入的是旋轉角度
out = im.transpose(Image.ROTATE_270)

3.在PIL中還可以吧RGB影象的R,G,B分離出來使用的呢;例如:

r,g,b = im.spilt()
im = Image.merge("RGB",(r,b,g))
#這樣R,G,B就調換成了R,B,G來使用了,也就是說B的值當R來使用這個意思
4、影象增強,可以增強一下對比度
from PIL import ImageEnhance as ie
enh = ie.Contrast(image)
enh.enhance(1.3).show("30% enhance")

5、利用Image模組還可以建立thumnail

import glob
for infile in glob.glob("*.jpg"):
    file, ext = os.splitext(infile)
    im = Image.open(infile)
    im.thumbnail((128, 128), Image.ANTIALIAS)
    im.save(file + ".thumbnail", "JPEG")

下面來介紹一下Image模組下的一些函式:

1=》Image.new(mode,size)/Image.new(mode,size,color)

這個是新建立一張圖片

2=》Image.open(infile)/Image.open(infile,mode)

這個是開啟一張圖片,開啟的這張圖片呢,在你對這張圖片進行操作之前是不會讀取進來的,在你進行操作的時候就讀進來

如果指定了mode的話,那一定是“r“

3=》Image.blend(image1,image2,alpha)

out = image * (1-alpha) + image2 * alpha

看看out你就知道了什麼意思了,當alpha是0時,輸出的就是image1,當alpha是1時,輸出的就是image2

但是兩個影象的大小需要一致的

4=》Image.composite(image1,image2,mask)

利用mask當做是alpha,建立一張在image1,image2之間的新影象

5=》Image.eval(function,image)

 

6=>Image.fromstring(mode,size,data)/Image.fromstring(mode,size,data,decoder,parameters)

對於第一個,就是從一個string中的畫素資料中建立影象,使用的解碼器是”raw“;第二個就是自選decoder了

7=>Image.merge(mode,bands)