opencv之Harris角點檢測

2021-10-01 12:10:14 字數 1550 閱讀 3084

opencv4.1.2+contrib win10 vs2019

角點是一模擬較特殊的點,構成角點的條件兩條或者多條線的交叉,線可以理解為邊緣特徵很強的畫素點的集合,在opencv中大部分的影象處理基於掩膜移動來實現,在矩形框內如果在沒有角點的區域內也就是所謂的平原地帶,無論向哪個方向移動,矩形框內圈住的內容的梯度變化都不大,如果矩形框處在單邊緣線上,矩形框移動時只能在乙個方向產生較大的梯度變化,不構成角。矩形框框住角點,矩形框的移動會造成各個方向梯度的變化。

計算點x方向與y方向梯度,某個點在xy方向梯度變化都很大,證明該點為角點。梯度(某個方向變化最快的方向)

void cornerharris(inputarray src, outputarray dst, int blocksize, int ksize, double k, int bordertype=border_default)

引數介紹

("原始"

, window_autosize)

;imshow

("原始"

, src)

;cvtcolor

(src, gray_src, color_bgr2gray)

;//原始轉化為灰度圖

createtrackbar

("調整"

,"原始"

,&cur_value, max_value, harris_demo,

&gray_src)

;waitkey(0

);destroyallwindows()

;return0;

}//角點檢測演算法部分

void

harris_demo

(int cur_value,

void

* gray_src)

}//顯示檢測結果

namedwindow

("角點檢測"

, window_autosize)

;imshow

("角點檢測"

OpenCV之Harris角點檢測

在影象處理領域,角點檢測演算法主要有以下幾類 基於灰度影象的角點檢測 基於二值影象的角點檢測 基於輪廓曲線的角點檢測 而基於灰度影象的角點檢測又可分為基於梯度 基於模板 基於梯度和基於模板組合三類方法。其中基於模板的方法主要考慮畫素鄰域點的灰度變化,即影象亮度的變化,將與相鄰點亮度對比足夠大的點定義...

harris 檢測角點

主要是使用函式 cv exports w void goodfeaturestotrack inputarray image,輸入影象 outputarray corners,角點數 int maxcorners,最大角點數 double qualitylevel,最大最小特徵值乘法因子 doubl...

opencv實現Harris角點檢測

include include include include include includeusing namespace std using namespace cv harris角點檢測 blocksize是鄰域大小,對每個畫素,考慮blocksize blocksize大小的鄰域,計算鄰域上...