Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
428e8d12
O
Opencv
项目概览
Greenplum
/
Opencv
11 个月 前同步成功
通知
7
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
Opencv
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
428e8d12
编写于
12月 22, 2010
作者:
V
Vladislav Vinogradov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
added matcher_simple_gpu sample
上级
a6d9cce5
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
64 addition
and
0 deletion
+64
-0
samples/gpu/matcher_simple.cpp
samples/gpu/matcher_simple.cpp
+64
-0
未找到文件。
samples/gpu/matcher_simple.cpp
0 → 100644
浏览文件 @
428e8d12
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/features2d/features2d.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/gpu/gpu.hpp>
using
namespace
std
;
using
namespace
cv
;
using
namespace
cv
::
gpu
;
void
help
()
{
cout
<<
"
\n
This program demonstrates using SURF_GPU features detector, descriptor extractor and BruteForceMatcher_GPU"
<<
endl
;
cout
<<
"
\n
Usage:
\n\t
matcher_simple_gpu <image1> <image2>"
<<
endl
;
}
int
main
(
int
argc
,
char
*
argv
[])
{
if
(
argc
!=
3
)
{
help
();
return
-
1
;
}
GpuMat
img1
(
imread
(
argv
[
1
],
CV_LOAD_IMAGE_GRAYSCALE
));
GpuMat
img2
(
imread
(
argv
[
2
],
CV_LOAD_IMAGE_GRAYSCALE
));
if
(
img1
.
empty
()
||
img2
.
empty
())
{
cout
<<
"Can't read one of the images"
<<
endl
;
return
-
1
;
}
SURF_GPU
surf
;
// detecting keypoints & computing descriptors
GpuMat
keypoints1GPU
,
keypoints2GPU
;
GpuMat
descriptors1GPU
,
descriptors2GPU
;
surf
(
img1
,
GpuMat
(),
keypoints1GPU
,
descriptors1GPU
);
surf
(
img2
,
GpuMat
(),
keypoints2GPU
,
descriptors2GPU
);
// matching descriptors
BruteForceMatcher_GPU
<
L2
<
float
>
>
matcher
;
GpuMat
trainIdx
,
distance
;
matcher
.
matchSingle
(
descriptors1GPU
,
descriptors2GPU
,
trainIdx
,
distance
);
// downloading results
vector
<
KeyPoint
>
keypoints1
,
keypoints2
;
vector
<
float
>
descriptors1
,
descriptors2
;
vector
<
DMatch
>
matches
;
SURF_GPU
::
downloadKeypoints
(
keypoints1GPU
,
keypoints1
);
SURF_GPU
::
downloadKeypoints
(
keypoints2GPU
,
keypoints2
);
SURF_GPU
::
downloadDescriptors
(
descriptors1GPU
,
descriptors1
);
SURF_GPU
::
downloadDescriptors
(
descriptors2GPU
,
descriptors2
);
BruteForceMatcher_GPU
<
L2
<
float
>
>::
matchDownload
(
trainIdx
,
distance
,
matches
);
// drawing the results
Mat
img_matches
;
drawMatches
(
img1
,
keypoints1
,
img2
,
keypoints2
,
matches
,
img_matches
);
imshow
(
"matches"
,
img_matches
);
waitKey
(
0
);
return
0
;
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录