OPENCV角點檢測和亞畫素級檢測

2021-10-24 13:54:35 字數 1071 閱讀 1967

首先進行粗檢測,函式goodfeaturestotrack,儲存進入corners中,然後cornersubpix函式進行亞畫素精確匹配,設定結束條件。

由於實際應用中線條較粗,因此

corner_blocksize = 9;

corner_qualitylevel = 0.6;

其他引數可以微調。

std::vectorcorners;

//double qualitylevel = 0.5;

double mindistance = 10;

int blocksize = corner_blocksize, gradientsize = corner_blocksize;

bool useharrisdetector = true;

double k = 0.04;

cv::mat copy = img3.clone();

cv::goodfeaturestotrack( copy,

corners,

max_corners,

corner_qualitylevel,

mindistance,

cv::mat(),

blocksize,

gradientsize,

useharrisdetector,

k );

int radius = 4;

for( size_t i = 0; i < corners.size(); i++ )

cv::termcriteria criteria = cv::termcriteria(

cv::termcriteria::max_iter + cv::termcriteria::eps,

40,0.001);

cv::cornersubpix(img3, corners, cv::size(corner_blocksize, corner_blocksize), cv::size(-1, -1), criteria);

for (int i = 0; i < corners.size(); i++)

參考:

opencv 亞畫素點檢測

之前方面的總結 之前用的harris和shi tomasi進行角點檢測時得到的都是自己想要的角點,這些角點的座標都是粗略的,要想得到最完美的角點檢測就是利用亞畫素級角點檢測 若我們進行的不是影象處理的識別特徵點而是進行幾何測量,通常需要更高的精度前兩種角點檢測只能提供簡單畫素的座標值,也就是說有時候...

檢測亞畫素級角點

用cornersubpix 函式將角點定位到子畫素,從而取得亞畫素級別的角點檢測效果。尋找更精確的角點位置 不是整數型別的位置,而是更精確的浮點型別位置 如何將求得的座標值精確到亞畫素級精度?方法就是向量的點積理論 乙個向量和其正交的向量的點積為0,角點我們之前有說過了,就是兩個邊緣的相交,可以滿足...

OpenCV第十二講 角點檢測與亞畫素精度

角點檢測被定義兩條邊的交點,在實際應用中,大多數所謂的角點檢測方法檢測的是擁有特定特徵的影象點,而不僅僅是角點。角點 如果某一點在任意方向的乙個微小變動都會引起灰度很大的變化,那麼將其稱之為角點。角點檢測演算法 基於二值影象的角點檢測 基於輪廓曲線的角點檢測 harris角點檢測 cornerhar...