官網教程
#include
#include
#include
#include
using namespace cv;
using namespace std;
using namespace cv:
:xfeatures2d;
intmain()
//計算 keypoints and descriptor
int minhessian =
400;
ptr detector = surf:
:create
(minhessian)
; std:
:vector keypoint1, keypoint2;
mat descriptor1, descriptor2;
detector->
detectandcompute
(img1,
noarray()
, keypoint1, descriptor1)
; detector->
detectandcompute
(img2,
noarray()
, keypoint2, descriptor2)
;//匹配
ptr:descriptormatcher> matcher = descriptormatcher:
:create
(descriptormatcher:
:flannbased)
;// 基於flann匹配
vector
:vector> knn_matches;
// 因為要為每個descriptor找到最佳的k 個匹配, 對於每個descriptor來說,又是vector
matcher->
knnmatch
(descriptor1, descriptor2, knn_matches,2)
;//篩選最好的
const
float ratio_thresh =
0.7f
; vector good_matchers;
for(
int i=
0; i
size()
; i++)}
//展示
畫特徵點、匹配( feature2d.hpp )
void cv::drawkeypoints
(
inputarray image,
// source image
const std:
:vector< keypoint >
& keypoints,
// keypoints from the source image
inputoutputarray outimage,
// 輸出影象
const scalar & color = scalar:
:all(-
1),// color for keypoints ,default (-1)隨機
drawmatchesflags flags = drawmatchesflags:
:default //畫圖的方式,預設就行, 或者not_draw_single_points:沒有匹配的點不畫出來
)
void cv::drawmatches
(
inputarray img1,
//first source image
const std:
:vector< keypoint >
& keypoints1,
//keypoints from the first source image.
inputarray img2,
// second source image.
const std:
:vector< keypoint >
& keypoints2,
// keypoints from the second source image.
const std:
:vector< dmatch >
& matches1to2,
// 兩源圖之間的匹配
inputoutputarray outimg,
//輸出影象
const scalar & matchcolor = scalar:
:all(-
1),// 隨機顏色
const scalar & singlepointcolor = scalar:
:all(-
1),// 沒有匹配的點的顏色
const std:
:vector<
char
>
& matchesmask = std:
:vector<
char
>()
,// mask決定哪些點畫,如果為空,全都畫
drawmatchesflags flags = drawmatchesflags:
:default //畫圖方式,如上api
)
從候選匹配中,為每個匹配找到最佳的k個匹配
void cv::descriptormatcher::knnmatch
(
inputarray querydescriptors,
// 第一張的匹配
inputarray traindescriptors,
// 第二張的匹配
std:
:vector< std:
:vector< dmatch >
>
& matches,
// 存的匹配結果
int k,
// 前k個最佳匹配,
inputarray mask =
noarray()
, bool compactresult = false
)const
特基礎特基礎的東西隨便寫寫
include include include using namespace std 定義人類 person 資料成員 m strname 成員函式 attack class person 定義士兵類 soldier 士兵類公有繼承人類 資料成員 m strname 成員函式 attack cla...
斯特林數 斯特林反演
第一類stirling數 s n,m 也可記為 beginn m end 第一類stirling分為無符號第一類stirling數 s u n,m 和帶符號第一類stirling數 s s n,m 他們分別表現為其公升階函式和降階函式的各項係數,形式如下 x x cdot x 1 cdot x 2 ...
希爾伯特變換 希爾伯特變換
希爾伯特變換 ht 是指描述乙個以實數值載波做調製的訊號之複數包絡,相移是通過希爾伯特變換器來實現的,訊號經希爾伯特變換後在頻域各頻率分量的幅度保持不變,但相位出現90度相移,正頻率之後90度負頻率超前90度,希爾伯特變換器又成為90度相位器。用希爾伯特變換描述幅值調值或相位調值的包絡,瞬時頻率和瞬...