opencv中的harris角點檢測函式

2021-08-01 14:32:14 字數 2173 閱讀 5224

//! computes harris cornerness criteria at each image pixel

cv_exports_w void cornerharris( inputarray src, outputarray dst, int blocksize,

int ksize, double k,

int bordertype=border_default );

src —— 待檢測影象,單通道灰度圖

dst —— 角點響應值,型別cv_32fc1

blocksize —— **中視窗大小,下面細說

ksize —— sobel視窗大小

k —— 原始**裡的調節引數 0.04到0.05之間

bordertype —— 邊界處理方式

其實寫這個我想說明的就是這個blocksize和ksize的意義,檢視原始碼

static void

cornereigenvalsvecs( const mat& src, mat& eigenv, int block_size,

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++ )

}boxfilter(cov, cov, cov.depth(), size(block_size, block_size),

point(-1,-1), false, bordertype );//引數blocksize

if( op_type == mineigenval )

calcmineigenval( cov, eigenv );

else

if( op_type == harris )

calcharris( cov, eigenv, k );

else

if( op_type == eigenvalsvecs )

calceigenvalsvecs( cov, eigenv );

}}

標出了使用兩個引數的位置,其中ksize是sobel運算元窗體大小就不用多說了,越大抗雜訊能力越強,但模糊也更加嚴重。opencv用sobel來計算dx和dy,進而求得dx*dy dx*dx dy*dy,也即求得原方法中的海森矩陣。在**中二次型引數m,是乙個視窗內的海森矩陣加權和。視窗可以為方形或者高斯,opencv使用了boxfilter函式(視窗大小由blocksize控制)來實現方形視窗。**這麼實現應該主要還是為了抗噪。不要讓雜訊成為角點被檢測出來,另外也可以用這兩個引數來控制角點對比度。所以值的選取要看具體的應用場景中雜訊的特性了。

#include

#include

#include

using

namespace

std;

using

namespace cv;

int thres;

int blocksize;

int ksize;

void harriscorner(int,void *)

ptr++;}}

//5.顯示

另外一些離的很近的角點可以用非極大值抑制來消除,窗體大小可參考blocksize的大小,一種實現如下

//4.根據閾值記錄角點

opencv實現Harris角點檢測

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

opencv之Harris角點檢測

opencv4.1.2 contrib win10 vs2019 角點是一模擬較特殊的點,構成角點的條件兩條或者多條線的交叉,線可以理解為邊緣特徵很強的畫素點的集合,在opencv中大部分的影象處理基於掩膜移動來實現,在矩形框內如果在沒有角點的區域內也就是所謂的平原地帶,無論向哪個方向移動,矩形框內...

OpenCV之Harris角點檢測

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