這次練習的是透過Python讀取一張彩色的圖片,將圖片每個pixel的RGB減半,最後會是圖片亮度變暗的效果。 PIL(Python Imaging Library),是一款提供給Python的影像處理套件,使用前必須先透過pip安裝相關的套件。 windows如果要在cmd使用pip的話需要設定環境變數:
- 先安裝pip(Python3.4以上的版本已經幫你裝好了),安裝方式可以參考這篇網址:在windows下安裝pip
- 設定環境變數:對我的電腦點右鍵->內容->進階系統設定->環境變數->使用者變數
- 在Path那邊新增pip.exe所在的資料夾(Ex:我的是在D:\Python\Scripts),找不到Path則自己新增一個
安裝PIL:
- 如果pip不是最新版要先更新,在cmd下輸入
python -m pip install --upgrade pip
更新pip - 輸入
pip install pillow
影像處理小科普:
圖片就像是一個二維的矩陣,RGB分別代表一個二維的矩陣,也就是說,一張256*256的彩色圖片則會有三層的256*256矩陣。
我用了兩種方式完成這次的練習:
透過getpixel / putpixel API來直接些改圖片的RGB值
1
2
3
4
5
6
7
8
9
10
11
12### (1)透過getpixel / putpixel API來直接些改圖片的RGB值
from PIL import Image
img = Image.open("123.jpg")
print (img.format,img.size,img.mode)
img.show()
print(img.size[0],img.size[1])
for x in range(img.size[0]):
for y in range(img.size[1]):
r,g,b = img.getpixel((x,y))
img.putpixel((x,y),( int(r/2),int(g/2),int(b/2) ))
img.save("temp.jpg")
img.show()透過
load()
將圖片載入到記憶體
1 | ### (2)透過load()將圖片載入到記憶體 |
最後呈現的結果會像這樣: