Opencv2系列學習筆記12 檢測fast特徵

2021-07-27 09:44:59 字數 1149 閱讀 8394

一:fast特徵定義什麼是角點:

這次的定義基於假定特徵點周圍的影象強度,通過檢查候選畫素周圍一圈畫素來決定是否接受乙個特徵點。與中心點差異較大的畫素如果組成連續的圓弧,並且弧長大於原周長的

3/4,那麼我們認為找到了乙個特徵點。

二:加速技巧

首先測試圓上被90度分割的四個點(頂部,底部,左側及右側),那麼為了滿足上述條件,四個點中至少三個點必須大於或者小於中心畫素。如果不成立,那麼該點可以被直接移除而不需要檢查額外圓周上的點。在實踐中,大部分的畫素點可以通過該測試進行移除,因此非常有效。

三:半徑引數

測試中圓的半徑是乙個引數,實踐中發現,半徑為3可以兼顧結果和效率。

四:演算法適用

code:

[cpp]view plain

copy

print

?#include 

#include 

#include 

#include //  特徵點檢測類都封裝在features2d這個模組中

#include 

using

namespace

std;  

using

namespace

cv;  

intmain()  

vectorkeypoints;  

fastfeaturedetector fast(20);  // 20 為閥值

fast.detect(image,keypoints);  

drawkeypoints(image, keypoints, image, scalar::all(-1), drawmatchesflags::not_draw_single_points);  // opencv2 提供的乙個特徵點繪製函式 ---- keypoints

參考blog:

Opencv2系列學習筆記11 霍爾夫變換

本節主要介紹如何用hough變換檢測直線和圓 一 hough變換檢測直線 1 原始hough變換 思想 先求出影象中每點的極座標方程 如下,相交於一點的極座標曲線的個數大於最小投票數,則將該點所對應的 p,r0 放入vector 中,即得到一條直線,lines 中儲存的是極座標方程的引數 注意 ho...

opencv系列學習 2

傅利葉變換會將影象分解成其正弦和余弦分量。換句話說,它將影象從空間域轉換到頻率域。這個想法是,任何函式都可以用無限的正弦和余弦函式之和精確地近似。傅利葉變換是一種方法。數學上,二維影象的傅利葉變換為 include opencv2 core.hpp include opencv2 imgproc.h...

opencv2 學習第12天 複習

include include include using namespace cv using namespace std int g slider position 0 int n 0 cvcapture g cap nullptr void ontrackbarslide int pos vo...