python 圖像處理

Pillow是Python裏的圖像處理庫(PIL:Python Image Library),提供了了廣泛的文件格式支持,強大的圖像處理能力,主要包括圖像儲存、圖像顯示、格式轉換以及基本的圖像處理操作等。

顏色與RGBA值
計算機通常將圖像表示爲RGB值,或者再加上alpha值(通透度,透明度),稱爲RGBA值。在Pillow中,RGBA的值表示爲由4個整數組成的元組,分別是R、G、B、A。整數的範圍0~255。RGB全0就可以表示黑色,全255代表黑色。可以猜測(255, 0, 0, 255)代表紅色,因爲R分量最大,G、B分量爲0,所以呈現出來是紅色。但是當alpha值爲0時,無論是什麼顏色,該顏色都不可見,可以理解爲透明。
from PIL import ImageColor
print(ImageColor.getcolor('red', 'RGBA'))
#也可以只以RBG的方式查看
print(ImageColor.getcolor('black', 'RGB'))

圖像的座標表示
圖像中左上角是座標原點(0, 0),這和平常數學裏的座標系不太一樣。這樣定義的座標系意味着,X軸是從左到右增長的,而Y軸是從上到下增長。

在Pillow中如何使用上述定義的座標系表示一塊矩形區域?許多函數或方法要求提供一個矩形元組參數。元組參數包含四個值,分別代表矩形四條邊的距離X軸或者Y軸的距離。順序是(左,頂,右,底)。右和底座標稍微特殊,表示直到但不包括。可以理解爲[左, 右)和[頂, 底)這樣左閉右開的區間。比如(3, 2, 8, 9)就表示了橫座標範圍[3, 7];縱座標範圍[2, 8]的矩形區域。

使用Pillow操作圖像
from PIL import Image

im_path = r'F:\Jupyter Notebook\csv_time_datetime_PIL\rabbit.jpg'
im = Image.open(im_path)
width, height = im.size
#寬高
print(im.size, width, height)
#格式,以及格式的詳細描述
print(im.format, im.format_description)

im.save(r'C:\Users\Administrator\Desktop\rabbit_copy.jpg')
im.show()

im.size返回一個元組,分別是寬和高。show()方法會調用系統默認圖像查看軟件,打開並顯示。im.format可查看圖像的格式。save()可保存處理後的圖片,如果未經處理,保存後的圖像佔用的空間(字節數)一般也與原圖像不一樣,可能經過了壓縮。

裁剪圖像
Image有個crop()方法接收一個矩形區域元組(上面有提到)。返回一個新的Image對象,是裁剪後的圖像,對原圖沒有影響。

im = Image.open(im_path)
cropedIm = im.crop((700, 100, 1200, 1000))
cropedIm.save(r'C:\Users\Administrator\Desktop\cropped.png')

調整圖像的大小
resize方法返回指定寬高度的新Image對象,接受一個含有寬高的元組作爲參數。寬高的值得是整數。

im = Image.open(im_path)
width, height = im.size
resizedIm = im.resize((width, height+(1920-1080)))
resizedIm.save(r'C:\Users\Administrator\Desktop\resize.png')

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章