harris角點檢測算法實現:harris角點檢測原理

Harris 角點檢測 認為 特徵點具有局部差異性

如何描述“特徵點具有局部差異性”:

以每一個點為中心,取一個窗口,窗口大小為5*5或7*7像素大小。

這個窗口描述了這個特徵點周圍的環境

如果這個特徵點具有局部差異性,那麼以這個特徵點為中心,把窗口向360度任意一個方向移動,窗口的變化比較大,則這個特徵點的周圍環境變化比較大。

數學公式:

通俗易懂的Harris 角點檢測

(x,y):表示像素的位置。

通俗易懂的Harris 角點檢測

:表示窗口內的每個像素。

w(x,y):表示 這個位置的權重。

若w=1,則說明窗口中所有的像素貢獻是一樣的。

若w設置為以這個特徵點為中心的高斯,

高斯權重,說明距離這個特徵點越近,權重越大;越往周圍發散,權重越小。

I(x,y):表示(x,y)這個位置的像素值。如果是灰度圖,I就是灰度值,如果是彩色圖,I就是RGB值。

u和v表示窗口移動的方向。

I(x+u,y+v) – I(x,y):表示對應像素的灰度差異。

通俗易懂的Harris 角點檢測

:在整個窗口內,即在局部環境內求這個像素灰度差異的加權和。

對 I(x+u,y+v) – I(x,y)進行一階泰勒展開,得到

通俗易懂的Harris 角點檢測

在(x,y)處的灰度值,再加上u方向和v方向的偏導數。

整理後,結果為:

通俗易懂的Harris 角點檢測

u和v表示窗口移動的方向, H表示Harris矩陣,主要由圖像梯度表示。

對Harris矩陣進行特徵分解:

通俗易懂的Harris 角點檢測

得到兩個特徵值

通俗易懂的Harris 角點檢測

,矩陣的這兩個特徵值反映了:兩個相互垂直的方向上的變化情況

一個是變化最快的方向,一個是變化最慢的方向。

前面設置了u和v,這是兩個向量,表示窗口移動的方向。以(x,y)這個點為中心,進行360度的旋轉。

特徵值

通俗易懂的Harris 角點檢測

對應的特徵向量,確定了變化最快的方向和變化最慢的方向。其他方向的變化情況,介於這兩者之間。

通俗易懂的Harris 角點檢測
通俗易懂的Harris 角點檢測

通過對Harris矩陣的分析,得到如下結論:

只有當Harris矩陣的兩個特徵值

通俗易懂的Harris 角點檢測

都非常大的時候,特徵點才能和周圍環境區別比較大,是我們想要的特徵點。

現在檢測特徵的任務就變成了,計算Harris矩陣,並判斷其兩個特徵值

通俗易懂的Harris 角點檢測

的大小。

Harris角點準則

實際中,並不對Harris矩陣進行分解求其特徵值,因為計算量太大。而是使用Harris角點準則。

通俗易懂的Harris 角點檢測

C = Harris矩陣的行列式值 – k(Harris矩陣的跡)2

Harris矩陣的行列式值:Harris矩陣特徵值

通俗易懂的Harris 角點檢測

的乘積

Harris矩陣的跡:Harris矩陣特徵值

通俗易懂的Harris 角點檢測

的和

  • k的值越小,檢測子越敏感。k的值越小,能檢測到的特徵點越多。
  • 只有當和同時取得最大值時, 才能取得較大值。
  • 避免了特徵值分解,提高檢測計算效率。

原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/221711.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
投稿專員的頭像投稿專員
上一篇 2024-12-09 13:13
下一篇 2024-12-09 13:13

相關推薦

發表回復

登錄後才能評論