- OpenCV Python 教程
- OpenCV Python - 首頁
- OpenCV Python - 概述
- OpenCV Python - 環境配置
- OpenCV Python - 讀取影像
- OpenCV Python - 寫入影像
- OpenCV Python - 使用 Matplotlib
- OpenCV Python - 影像屬性
- OpenCV Python - 位運算
- OpenCV Python - 形狀和文字
- OpenCV Python - 滑鼠事件
- OpenCV Python - 新增軌跡條
- OpenCV Python - 縮放和旋轉
- OpenCV Python - 影像閾值
- OpenCV Python - 影像濾波
- OpenCV Python - 邊緣檢測
- OpenCV Python - 直方圖
- OpenCV Python - 顏色空間
- OpenCV Python - 影像變換
- OpenCV Python - 影像輪廓
- OpenCV Python - 模板匹配
- OpenCV Python - 影像金字塔
- OpenCV Python - 影像加法
- OpenCV Python - 影像混合
- OpenCV Python - 傅立葉變換
- OpenCV Python - 捕捉影片
- OpenCV Python - 播放影片
- OpenCV Python - 從影片中提取影像
- OpenCV Python - 從影像生成影片
- OpenCV Python - 人臉檢測
- OpenCV Python - 均值漂移/CamShift
- OpenCV Python - 特徵檢測
- OpenCV Python - 特徵匹配
- OpenCV Python - 數字識別
- OpenCV Python 資源
- OpenCV Python - 快速指南
- OpenCV Python - 資源
- OpenCV Python - 討論
OpenCV Python - 特徵檢測
在影像處理的背景下,特徵是影像中關鍵區域的數學表示。它們是影像視覺內容的向量表示。
特徵使得對它們進行數學運算成為可能。各種計算機視覺應用包括目標檢測、運動估計、分割、影像對齊等。
任何影像中的突出特徵包括邊緣、角點或影像的一部分。OpenCV 支援**Harris 角點檢測**和**Shi-Tomasi 角點檢測**演算法。OpenCV 庫還提供了實現**SIFT**(尺度不變特徵變換)、**SURF**(加速魯棒特徵)和 FAST 演算法進行角點檢測的功能。
Harris 和 Shi-Tomasi 演算法是旋轉不變的。即使影像旋轉,我們也可以找到相同的角點。但是,當影像放大時,如果影像,角點可能不再是角點。下圖描述了這一點。
D.Lowe 的新演算法,**尺度不變特徵變換**(SIFT)提取關鍵點並計算其描述符。
這是透過以下步驟實現的:
- 尺度空間極值檢測。
- 關鍵點定位。
- 方向分配。
- 關鍵點描述符。
- 關鍵點匹配。
就 OpenCV 中 SIFT 的實現而言,它從載入影像並將其轉換為灰度影像開始。**cv.xfeatures2d.SIFT_create()** 函式建立一個 SIFT 物件。
示例
呼叫其**detectAndCompute()** 方法獲取關鍵點,這些關鍵點繪製在原始影像的頂部。以下程式碼實現了此過程
import numpy as np
import cv2 as cv
img = cv.imread('home.jpg')
gray= cv.cvtColor(img,cv.COLOR_BGR2GRAY)
sift = cv.SIFT_create()
kp = sift.detect(gray,None)
img=cv.drawKeypoints(gray,kp,img)
cv.imwrite('keypoints.jpg',img)
輸出
原始影像和繪製了關鍵點的影像如下所示:
這是一張**原始影像**。
下圖是**帶有關鍵點的影像**:
廣告