#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要...