OpenCV2 Shi Tomasi角點檢測

2021-10-08 10:30:04 字數 2227 閱讀 3104

角點檢測理論

和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​)

引數說明

goodfeaturestotrack

(inputarray image,

outputarray corners,

//檢測角點的座標

int maxcorners,

//表示返回角點的數目,如果檢測角點數目大於最大數目則返回響應值最強的規定數目的角點

double qualitylevel,

//表示最小可接受的向量值1500、0.01、15

double mindistance,

//兩個角點之間的最小距離

inputarray mask =

noarray()

,int blocksize =3,

//視窗大小

bool useharrisdetector =

false

,//是否使用harris角點檢測

double k =

0.04

)

示例**
#include

#include

using

namespace cv;

using

namespace std;

int num_corners =25;

int max_corners=

255;

char

*const ouput_title =

"****omasi detector"

;void

****omasi_demo

(int,void*)

;mat src, gray_src;

rng rng

(12345);

intmain()

namedwindow

("input image"

, window_autosize)

;imshow

("input image"

, src)

;createtrackbar

("num corners:"

, output_title,

&num_corners, max_corners, ****omasi_demo)

;****omasi_demo(0

,0);

nameswindow

(output_title, window_autosize)

;cvtcolor

(src, gray_src, color_bgr2gray)

;waitkey(0

);return0;

}void

****omasi_demo

(int,void*)

vector corners;

double qualitylevel =

0.01

;double mindistance =10;

int blocksize =3;

bool useharris =

false

;int k =

0.04

; mat resultimg = src.

clone()

;goodfeaturestotrack

(gray_src, corners, num_corners, qualitylevel, mindistance,

mat(

), blocksize, useharris, k)

;for

(size_t t =

0; t < corners.

size()

; t++

)imshow

(output_title, resultimg)

;}

輸出結果:

opencv 學習筆記2

這裡只是實現了 2.1 節的 這次閱讀完了 opencv2 計算機視覺程式設計攻略 中的第二章,雖然大部分都很熟悉,但是還是應該記錄一下,好記星不如爛筆頭,何況自己離好記星還差很遠呢 我們這次完成的是在一幅上面新增雜訊,ie,新增椒鹽雜訊。操作很簡單,需要注意的地方有 1.mat的隨機訪問方法 at...

opencv 輪廓特徵2

函式 moments moments inputarray array,bool binaryimage false 用來計算多邊形或珊格形狀的0 3階矩。moments類定義如下 classmoments mxx是0 3階矩,muxx是0 3階中心矩,nuxx是0 3階歸一化中心矩,公式如下 當計...

OpenCV菜鳥紀實 2

學習目標 安裝opencv2.4.13 vs2015。謝天謝地,終於裝完了,歷時近4個小時,特來總結。step 1 安裝cmake。這裡比較無謂的下了幾個cake的版本,其實去官網上直接下乙個msi檔案,然後安裝就可以了。step 2 編譯opencv。利用cmake gui.exe編譯opencv...