這兩個 OpenCV 的函數 FAST
和 goodFeaturesToTrack
都是用於特徵點檢測的,但它們有不同的用途和工作原理。以下是它們的區別:
1. FAST
函數
目的: FAST
是用來檢測圖像中的角點(KeyPoints),特別是高效的角點檢測器(Feature Detector)。它通常用於實時應用中,能夠快速地找到圖像中的角點。
參數:
InputArray image
: 輸入圖像,必須是灰度圖像。CV_OUT std::vector<KeyPoint>& keypoints
: 輸出檢測到的特徵點(角點)。threshold
: 用來判斷是否為角點的閾值。該值越高,檢測到的角點數量越少,通常需要調整來達到最佳效果。nonmaxSuppression
: 是否執行非極大值抑制來過濾非最大角點。如果設置為true
,將只保留局部最大值的角點,這樣可以避免過多的角點。
特點:
- 用途: 主要用來檢測快速角點(FAST角點檢測算法),適合用於需要快速計算的場合。
- 算法: FAST 是一種基於亮度變化的角點檢測算法,會在每個像素周圍檢查圓形範圍的亮度變化來確定是否是角點。它主要檢測圖像中的角點,通常不會產生過多的特徵點,並且計算速度較快。
- 應用場景: 用於需要快速檢測角點的場景,像是視覺跟踪、視覺SLAM等。
2. goodFeaturesToTrack
函數
目的