從這一章開始,我們要正式開始學習如何使用Opencv的各種功能進行影像處理,本章會介紹Opencv中常用且方便的幾種功能,從最基礎的圖片處理開始。
我們首先要做的事,是將Opencv函式庫用指令匯入進來,用Python來表示即是在開頭寫上:
import cv2
找出一張自己喜歡的圖片,使用 cv2.imread 函數讀取圖片,存到自訂的變數名稱中:
img = cv2.imread('image.jpg')
如果想將圖片以灰階格式讀取進來的話,可以在第二個參數加上cv2.IMREAD_GRAYSCALE,圖片就會以灰階呈現:
img_gray = cv2.imread('image.jpg' , cv2.IMREAD_GRAYSCALE)
其他格式參數還有 cv2.IMREAD_COLOR (預設值)和 cv2.IMREAD_UNCHANGED (保留透明度)兩種,可以看情況選用。
想要把彩色圖片轉成灰階,除了在讀取圖片時就設定成灰階格式之外,還可以使用 cv2.cvtColor 函數搭配 cv2.COLOR_BGR2GRAY 參數:
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
兩種方法都能夠做到彩色轉灰階,得到的結果都是一樣的。
將圖片讀取進來之後,使用 OpenCV 所提供的 cv2.imshow 函數 ,程式會在運行時彈出窗口來顯示圖片:
cv2.imshow('Image', img_gray)
在顯示完圖片之後,通常都會在程式碼底下加上兩列,以便後續的程式執行:
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.waitKey 函數是用來等待與讀取使用者按下的按鍵,後面的參數是等待時間,如果設定為 0 就表示持續等待,直到使用者按下按鍵為止,這樣當實用者按下任意按鍵之後,就會呼叫 cv2.destroyAllWindows 函數關閉所有 OpenCV 產生的視窗。
如果想要把轉換後的圖片保存下來,只需要在中間插上一串代碼:
cv2.imwrite('output.jpg', img_gray)
cv2.imwrite後面的兩個參數分別為欲輸出圖片的檔名,以及存放灰階圖片的變數。
以上,就是一個最基礎的彩色轉灰階圖片小程式,完整程式碼如下:
import cv2
img = cv2.imread('image.jpg')
img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imwrite('output.jpg', img_gray)
cv2.imshow('Image', img_gray)
cv2.waitKey(0)
cv2.destroyAllWindows()