iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 3
1

從這一章開始,我們要正式開始學習如何使用Opencv的各種功能進行影像處理,本章會介紹Opencv中常用且方便的幾種功能,從最基礎的圖片處理開始。

我們首先要做的事,是將Opencv函式庫用指令匯入進來,用Python來表示即是在開頭寫上:

匯入Opencv

import cv2

找出一張自己喜歡的圖片,使用 cv2.imread 函數讀取圖片,存到自訂的變數名稱中:

讀取image.jpg圖檔

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()

上一篇
Day02-安裝OpenCV
下一篇
Day4-圖片分割
系列文
OpenCV 從零開始的影像處理30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言