電腦視覺是人工智慧的一個分支,它致力於使用電腦來模擬和實現人類視覺系統的功能。在現代科技發展的背景下,電腦視覺被廣泛應用於各種領域,如機器人、安防、醫療、自動駕駛等。
OpenCV(Open Source Computer Vision)是一個跨平台的開源電腦視覺庫,由英特爾公司發起並維護。它提供了豐富的影像處理和電腦視覺功能,包括影像偵測、特徵提取、目標追蹤、人臉辨識等。而Python在機器學習和資料科學領域的流行程度,也使得OpenCV在Python的版本備受關注。本文將介紹OpenCV在Python中的使用方法與具體實作。
安裝OpenCV
在使用OpenCV之前,需要先安裝相關的函式庫和相依性。在Python中,可以使用pip指令來安裝。
pip install opencv-python
pip install opencv-contrib-python
這兩個指令分別安裝OpenCV的基礎版和擴充版,擴充版包含一些在基礎版中沒有的功能。
讀取和顯示圖像
使用OpenCV處理圖片的第一步,是將圖片讀入程式。 OpenCV提供了cv2.imread()函數來讀取圖像,讀取後的圖像是以NumPy數組的形式儲存的。
import cv2
img = cv2.imread('example.jpg')
在讀入影像後,可以使用cv2.imshow()函數將圖片顯示出來。這個函數有兩個參數,第一個參數是視窗的名稱,第二個參數是要顯示的圖像。
cv2.imshow('example', img)
使用cv2.waitKey()函數等待使用者按下任何按鍵後,視窗就會自動關閉。
cv2.waitKey(0)
圖像的大小可以使用img.shape來獲取,它會傳回一個三元組(height, width, depth),其中height表示圖像的高度, width表示影像的寬度,depth表示每個像素的位數。若影像是彩色影像,則depth為3,灰階影像則為1。
影像處理和操作
OpenCV提供了豐富的影像處理和操作函數。其中,最簡單的就是灰階化處理,將彩色影像轉換成灰階影像,這需要使用cv2.cvtColor()函數。
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
在灰階化處理中定義了cv2.COLOR_BGR2GRAY,其中cv2是OpenCV模組的名稱。 OpenCV內建影像格式是BGR,而非常見的RGB,因此其參數的順序為BGR。
除了灰階化處理外,還有一些常用的操作函數,如調整影像尺寸、旋轉、平移等。
resized = cv2.resize(img, (600, 600), interpolation=cv2.INTER_AREA)
flipped = cv2.flip(img, -1)
(rows, cols) = img.shape[:2]
M = cv2.getRotationMatrix2D ((cols / 2, rows / 2), 45, 1)
rotated = cv2.warpAffine(img, M, (cols, rows))
影像的特徵擷取與偵測
除了基本的影像處理和操作外,OpenCV還提供了各種特徵提取和偵測函數。這些函數可以檢測和提取出影像中的特徵,如角點、直線和輪廓等。
角點偵測是一種廣泛應用於機器視覺和電腦視覺領域的技術,它可用於影像匹配、目標追蹤和三維重建等應用。 OpenCV提供了cv2.goodFeaturesToTrack()函數來完成角點偵測。
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
corners = cv2.goodFeaturesToTrack(gray, 100, 0.01, 10)
corners = np.int0(corners)
以上是Python中的電腦視覺庫opencv詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!