特徵匹配和目標識別

2021-10-21 14:43:27 字數 2484 閱讀 1464

#include

#include

#include

using

namespace std;

using

namespace cv;

mat g_src1, g_src2;

char input_win=

"input image"

;int minhessian =

400;

//定義最小海森矩陣

intmain()

ptrdetector = sift::

create

(minhessian)

; vectorkeypoints1;

//定義特徵點容器

vectorkeypoints2;

mat descriptor_1, descriptor_2;

detector-

>

detectandcompute

(g_src1,

mat(

), keypoints1, descriptor_1)

;//找到第一張的keypoints

detector-

>

detectandcompute

(g_src2,

mat(

), keypoints2, descriptor_2)

;//找到第二張的keypoints

flannbasedmatcher matcher;

vectormatches;

//匹配的id

matcher.

match

(descriptor_1, descriptor_2, matches)

;//尋找優秀的特徵匹配

double mindist =

1000

;double maxdist =0;

for(

int i=

0;i(dist}//遍歷所有特徵點,找最值完成

vectorgoodmatchers;

for(

int i =

0; i < descriptor_1.rows; i++)}

//挑選good完成

mat drawing;

/*drawmatches(g_src1, keypoints1, g_src2, keypoints2, goodmatchers, drawing,

scalar::all(-1) , scalar::all(-1),vector(),drawmatchesflags::not_draw_single_points);

imshow("drawing", drawing);

*/ vectorobj1;

vectorobj2;

for(size_t t=

0;tsize()

;t++

) mat h =

findhomography

(obj1, obj2, ransac)

; vector

obj1_corner(4

);vector

obj2_corner(4

);obj1_corner[0]

=point(0

,0);

obj1_corner[1]

=point

(g_src1.cols,0)

; obj1_corner[2]

=point

(g_src1.cols, g_src1.rows)

; obj1_corner[3]

=point(0

, g_src1.rows)

;perspectivetransform

(obj1_corner, obj2_corner, h)

;//drawline;

line

(drawing, obj2_corner[0]

, obj2_corner[1]

,scalar(0

,0,255),

2,8,

0);line

(drawing, obj2_corner[1]

, obj2_corner[2]

,scalar(0

,0,255),

2,8,

0);line

(drawing, obj2_corner[2]

, obj2_corner[3]

,scalar(0

,0,255),

2,8,

0);line

(drawing, obj2_corner[3]

, obj2_corner[0]

,scalar(0

,0,255),

2,8,

0);imshow

("drawing"

, drawing)

;waitkey(0

);return0;

}

目標檢測與目標識別

目標識別 objec recognition 是指明一幅輸入影象中包含哪類目標。其輸入為一幅影象,輸出是該影象中的目標屬於哪個類別 class probability 目標檢測 object detection 除了要告訴輸入影象中包含哪類目標外,還要框出該目標的具體位置 bounding boxe...

AI 目標識別研究

haar like 目標識別 你好!這是你第一次使用markdown編輯器所展示的歡迎頁。如果你想學習如何使用markdown編輯器,可以仔細閱讀這篇文章,了解一下markdown的基本語法知識。全新的介面設計,將會帶來全新的寫作體驗 在創作中心設定你喜愛的 高亮樣式,markdown將 片顯示選擇...

目標分割 目標識別 目標檢測和目標跟蹤的區別

粗略理解 典型的技術路線是 目標分割 目標檢測 目標識別 目標跟蹤 ot與od到底啥區別 最大的區別我覺得ot只給了第一幀的gt基於od的目標跟蹤演算法計算非常昂貴,需要對每幀畫面進行檢測,才能得到目標的運動軌跡。而且,只能追蹤已知的目標,因為目標檢測演算法就只能實現已知類別的定位識別。因此,od要...