shi-tomas在角點響應函式上與harris不同。
1.shi-tomas角點響應函式
r = min(λ1,λ2)
2.harris角點響應函式
r = det(m) - k(trace(m)^2)
其中m,是影象的張量矩陣。λ1與λ2是m的特徵值。
1.個人理解
1)在所表示的幾何橢圓中,特徵值越大,對應的橢圓軸越短,e(u,v)隨(u,v)的改變越大。
2)當某點最小的特徵值大於所設定的閾值時,矩陣m最少有兩個特徵值大於設定閾值。從而此點一定滿足角點要求。
因此以特徵值最小值作為判斷點能夠滿足強角點 。
2.影象直觀表示
//在shi-tomasi角點檢測中,此函式呼叫與harris角點檢測一致,唯一的不同在最後一步的模式選擇
int aperture_size,
int op_type,
double k=0.,
int bordertype=border_default )
else
size size = src.
size()
; mat cov
( size, cv_32fc3 )
;int i, j;
for( i =
0; i < size.height; i++)}
#endif
// cv_simd128
for(
; j < size.width; j++
)//直接的序列步驟
}boxfilter
(cov, cov, cov.
depth()
,size
(block_size, block_size)
,point(-
1,-1
), false, bordertype );if
( op_type == mineigenval )
//此處的選擇模式是最小特徵值
calcmineigenval
( cov, eigenv )
;else
if( op_type == harris )
calcharris
( cov, eigenv, k )
;else
if( op_type == eigenvalsvecs )
calceigenvalsvecs
( cov, eigenv );}
static
void
calcmineigenval
(const mat& _cov, mat& _dst )
for( i =
0; i < size.height; i++)}
#endif
// cv_simd128
//直接進行序列處理
for(
; j < size.width; j++
)//λ2 = (float)((a + c) - std::sqrt((a - c)*(a - c) + b*b))這個是最小的
}}
Shi Tomasi角點檢測演算法
1 shi tomasi概念 2 api 3 code 1 角點檢測除了harris角點檢測演算法外,還常常使用shi tomasi演算法,shi tomasi演算法是harris演算法的改進,因此計算速度更快,shi tomasi演算法於1994年在文章 good features to trac...
OpenCV2 Shi Tomasi角點檢測
角點檢測理論 和harris角點檢測的理論幾乎完全一致,唯一不同的是在使用矩陣特徵值 1 lambda 1 1 2 lambda 2 2 計算角度響應的時候的公式不同。shi tomasi角點響應公式 r m in 1,2 r min lambda 1,lambda 2 r min 1 2 引數說明...
harris角點檢測 角點檢測實戰
介紹 角點是很容易在影象中定位的區域性特徵,並且大量存在於人造物體中 例如牆壁 門 桌子等 角點的價值在於它是兩條邊緣線的接合點,是一種二維特徵,可以被精確地檢測 即使是亞畫素級精度 實現原理 例子 include includeusing namespace std using namespace...