Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
642d7d68
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,发现更多精彩内容 >>
提交
642d7d68
编写于
4月 02, 2013
作者:
V
Vladislav Vinogradov
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fixed nonfree test (run it only on one gpu device)
上级
9086efa8
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
50 addition
and
174 deletion
+50
-174
modules/nonfree/test/test_gpu.cpp
modules/nonfree/test/test_gpu.cpp
+50
-104
modules/nonfree/test/test_main.cpp
modules/nonfree/test/test_main.cpp
+0
-70
未找到文件。
modules/nonfree/test/test_gpu.cpp
浏览文件 @
642d7d68
...
...
@@ -58,9 +58,8 @@ namespace
IMPLEMENT_PARAM_CLASS
(
SURF_Upright
,
bool
)
}
PARAM_TEST_CASE
(
SURF
,
cv
::
gpu
::
DeviceInfo
,
SURF_HessianThreshold
,
SURF_Octaves
,
SURF_OctaveLayers
,
SURF_Extended
,
SURF_Upright
)
PARAM_TEST_CASE
(
SURF
,
SURF_HessianThreshold
,
SURF_Octaves
,
SURF_OctaveLayers
,
SURF_Extended
,
SURF_Upright
)
{
cv
::
gpu
::
DeviceInfo
devInfo
;
double
hessianThreshold
;
int
nOctaves
;
int
nOctaveLayers
;
...
...
@@ -69,14 +68,11 @@ PARAM_TEST_CASE(SURF, cv::gpu::DeviceInfo, SURF_HessianThreshold, SURF_Octaves,
virtual
void
SetUp
()
{
devInfo
=
GET_PARAM
(
0
);
hessianThreshold
=
GET_PARAM
(
1
);
nOctaves
=
GET_PARAM
(
2
);
nOctaveLayers
=
GET_PARAM
(
3
);
extended
=
GET_PARAM
(
4
);
upright
=
GET_PARAM
(
5
);
cv
::
gpu
::
setDevice
(
devInfo
.
deviceID
());
hessianThreshold
=
GET_PARAM
(
0
);
nOctaves
=
GET_PARAM
(
1
);
nOctaveLayers
=
GET_PARAM
(
2
);
extended
=
GET_PARAM
(
3
);
upright
=
GET_PARAM
(
4
);
}
};
...
...
@@ -93,39 +89,24 @@ GPU_TEST_P(SURF, Detector)
surf
.
upright
=
upright
;
surf
.
keypointsRatio
=
0.05
f
;
if
(
!
supportFeature
(
devInfo
,
cv
::
gpu
::
GLOBAL_ATOMICS
))
{
try
{
std
::
vector
<
cv
::
KeyPoint
>
keypoints
;
surf
(
loadMat
(
image
),
cv
::
gpu
::
GpuMat
(),
keypoints
);
}
catch
(
const
cv
::
Exception
&
e
)
{
ASSERT_EQ
(
CV_StsNotImplemented
,
e
.
code
);
}
}
else
{
std
::
vector
<
cv
::
KeyPoint
>
keypoints
;
surf
(
loadMat
(
image
),
cv
::
gpu
::
GpuMat
(),
keypoints
);
std
::
vector
<
cv
::
KeyPoint
>
keypoints
;
surf
(
loadMat
(
image
),
cv
::
gpu
::
GpuMat
(),
keypoints
);
cv
::
SURF
surf_gold
;
surf_gold
.
hessianThreshold
=
hessianThreshold
;
surf_gold
.
nOctaves
=
nOctaves
;
surf_gold
.
nOctaveLayers
=
nOctaveLayers
;
surf_gold
.
extended
=
extended
;
surf_gold
.
upright
=
upright
;
cv
::
SURF
surf_gold
;
surf_gold
.
hessianThreshold
=
hessianThreshold
;
surf_gold
.
nOctaves
=
nOctaves
;
surf_gold
.
nOctaveLayers
=
nOctaveLayers
;
surf_gold
.
extended
=
extended
;
surf_gold
.
upright
=
upright
;
std
::
vector
<
cv
::
KeyPoint
>
keypoints_gold
;
surf_gold
(
image
,
cv
::
noArray
(),
keypoints_gold
);
std
::
vector
<
cv
::
KeyPoint
>
keypoints_gold
;
surf_gold
(
image
,
cv
::
noArray
(),
keypoints_gold
);
ASSERT_EQ
(
keypoints_gold
.
size
(),
keypoints
.
size
());
int
matchedCount
=
getMatchedPointsCount
(
keypoints_gold
,
keypoints
);
double
matchedRatio
=
static_cast
<
double
>
(
matchedCount
)
/
keypoints_gold
.
size
();
ASSERT_EQ
(
keypoints_gold
.
size
(),
keypoints
.
size
());
int
matchedCount
=
getMatchedPointsCount
(
keypoints_gold
,
keypoints
);
double
matchedRatio
=
static_cast
<
double
>
(
matchedCount
)
/
keypoints_gold
.
size
();
EXPECT_GT
(
matchedRatio
,
0.95
);
}
EXPECT_GT
(
matchedRatio
,
0.95
);
}
GPU_TEST_P
(
SURF
,
Detector_Masked
)
...
...
@@ -144,39 +125,24 @@ GPU_TEST_P(SURF, Detector_Masked)
surf
.
upright
=
upright
;
surf
.
keypointsRatio
=
0.05
f
;
if
(
!
supportFeature
(
devInfo
,
cv
::
gpu
::
GLOBAL_ATOMICS
))
{
try
{
std
::
vector
<
cv
::
KeyPoint
>
keypoints
;
surf
(
loadMat
(
image
),
loadMat
(
mask
),
keypoints
);
}
catch
(
const
cv
::
Exception
&
e
)
{
ASSERT_EQ
(
CV_StsNotImplemented
,
e
.
code
);
}
}
else
{
std
::
vector
<
cv
::
KeyPoint
>
keypoints
;
surf
(
loadMat
(
image
),
loadMat
(
mask
),
keypoints
);
std
::
vector
<
cv
::
KeyPoint
>
keypoints
;
surf
(
loadMat
(
image
),
loadMat
(
mask
),
keypoints
);
cv
::
SURF
surf_gold
;
surf_gold
.
hessianThreshold
=
hessianThreshold
;
surf_gold
.
nOctaves
=
nOctaves
;
surf_gold
.
nOctaveLayers
=
nOctaveLayers
;
surf_gold
.
extended
=
extended
;
surf_gold
.
upright
=
upright
;
cv
::
SURF
surf_gold
;
surf_gold
.
hessianThreshold
=
hessianThreshold
;
surf_gold
.
nOctaves
=
nOctaves
;
surf_gold
.
nOctaveLayers
=
nOctaveLayers
;
surf_gold
.
extended
=
extended
;
surf_gold
.
upright
=
upright
;
std
::
vector
<
cv
::
KeyPoint
>
keypoints_gold
;
surf_gold
(
image
,
mask
,
keypoints_gold
);
std
::
vector
<
cv
::
KeyPoint
>
keypoints_gold
;
surf_gold
(
image
,
mask
,
keypoints_gold
);
ASSERT_EQ
(
keypoints_gold
.
size
(),
keypoints
.
size
());
int
matchedCount
=
getMatchedPointsCount
(
keypoints_gold
,
keypoints
);
double
matchedRatio
=
static_cast
<
double
>
(
matchedCount
)
/
keypoints_gold
.
size
();
ASSERT_EQ
(
keypoints_gold
.
size
(),
keypoints
.
size
());
int
matchedCount
=
getMatchedPointsCount
(
keypoints_gold
,
keypoints
);
double
matchedRatio
=
static_cast
<
double
>
(
matchedCount
)
/
keypoints_gold
.
size
();
EXPECT_GT
(
matchedRatio
,
0.95
);
}
EXPECT_GT
(
matchedRatio
,
0.95
);
}
GPU_TEST_P
(
SURF
,
Descriptor
)
...
...
@@ -199,43 +165,26 @@ GPU_TEST_P(SURF, Descriptor)
surf_gold
.
extended
=
extended
;
surf_gold
.
upright
=
upright
;
if
(
!
supportFeature
(
devInfo
,
cv
::
gpu
::
GLOBAL_ATOMICS
))
{
try
{
std
::
vector
<
cv
::
KeyPoint
>
keypoints
;
cv
::
gpu
::
GpuMat
descriptors
;
surf
(
loadMat
(
image
),
cv
::
gpu
::
GpuMat
(),
keypoints
,
descriptors
);
}
catch
(
const
cv
::
Exception
&
e
)
{
ASSERT_EQ
(
CV_StsNotImplemented
,
e
.
code
);
}
}
else
{
std
::
vector
<
cv
::
KeyPoint
>
keypoints
;
surf_gold
(
image
,
cv
::
noArray
(),
keypoints
);
std
::
vector
<
cv
::
KeyPoint
>
keypoints
;
surf_gold
(
image
,
cv
::
noArray
(),
keypoints
);
cv
::
gpu
::
GpuMat
descriptors
;
surf
(
loadMat
(
image
),
cv
::
gpu
::
GpuMat
(),
keypoints
,
descriptors
,
true
);
cv
::
gpu
::
GpuMat
descriptors
;
surf
(
loadMat
(
image
),
cv
::
gpu
::
GpuMat
(),
keypoints
,
descriptors
,
true
);
cv
::
Mat
descriptors_gold
;
surf_gold
(
image
,
cv
::
noArray
(),
keypoints
,
descriptors_gold
,
true
);
cv
::
Mat
descriptors_gold
;
surf_gold
(
image
,
cv
::
noArray
(),
keypoints
,
descriptors_gold
,
true
);
cv
::
BFMatcher
matcher
(
cv
::
NORM_L2
);
std
::
vector
<
cv
::
DMatch
>
matches
;
matcher
.
match
(
descriptors_gold
,
cv
::
Mat
(
descriptors
),
matches
);
cv
::
BFMatcher
matcher
(
cv
::
NORM_L2
);
std
::
vector
<
cv
::
DMatch
>
matches
;
matcher
.
match
(
descriptors_gold
,
cv
::
Mat
(
descriptors
),
matches
);
int
matchedCount
=
getMatchedPointsCount
(
keypoints
,
keypoints
,
matches
);
double
matchedRatio
=
static_cast
<
double
>
(
matchedCount
)
/
keypoints
.
size
();
int
matchedCount
=
getMatchedPointsCount
(
keypoints
,
keypoints
,
matches
);
double
matchedRatio
=
static_cast
<
double
>
(
matchedCount
)
/
keypoints
.
size
();
EXPECT_GT
(
matchedRatio
,
0.6
);
}
EXPECT_GT
(
matchedRatio
,
0.6
);
}
INSTANTIATE_TEST_CASE_P
(
GPU_Features2D
,
SURF
,
testing
::
Combine
(
ALL_DEVICES
,
testing
::
Values
(
SURF_HessianThreshold
(
100.0
),
SURF_HessianThreshold
(
500.0
),
SURF_HessianThreshold
(
1000.0
)),
testing
::
Values
(
SURF_Octaves
(
3
),
SURF_Octaves
(
4
)),
testing
::
Values
(
SURF_OctaveLayers
(
2
),
SURF_OctaveLayers
(
3
)),
...
...
@@ -245,17 +194,15 @@ INSTANTIATE_TEST_CASE_P(GPU_Features2D, SURF, testing::Combine(
//////////////////////////////////////////////////////
// VIBE
PARAM_TEST_CASE
(
VIBE
,
cv
::
gpu
::
DeviceInfo
,
cv
::
Size
,
MatType
,
UseRoi
)
PARAM_TEST_CASE
(
VIBE
,
cv
::
Size
,
MatType
,
UseRoi
)
{
};
GPU_TEST_P
(
VIBE
,
Accuracy
)
{
const
cv
::
gpu
::
DeviceInfo
devInfo
=
GET_PARAM
(
0
);
cv
::
gpu
::
setDevice
(
devInfo
.
deviceID
());
const
cv
::
Size
size
=
GET_PARAM
(
1
);
const
int
type
=
GET_PARAM
(
2
);
const
bool
useRoi
=
GET_PARAM
(
3
);
const
cv
::
Size
size
=
GET_PARAM
(
0
);
const
int
type
=
GET_PARAM
(
1
);
const
bool
useRoi
=
GET_PARAM
(
2
);
const
cv
::
Mat
fullfg
(
size
,
CV_8UC1
,
cv
::
Scalar
::
all
(
255
));
...
...
@@ -278,7 +225,6 @@ GPU_TEST_P(VIBE, Accuracy)
}
INSTANTIATE_TEST_CASE_P
(
GPU_Video
,
VIBE
,
testing
::
Combine
(
ALL_DEVICES
,
DIFFERENT_SIZES
,
testing
::
Values
(
MatType
(
CV_8UC1
),
MatType
(
CV_8UC3
),
MatType
(
CV_8UC4
)),
WHOLE_SUBMAT
));
...
...
modules/nonfree/test/test_main.cpp
浏览文件 @
642d7d68
#include "test_precomp.hpp"
#if defined(HAVE_OPENCV_GPU) && defined(HAVE_CUDA)
using
namespace
cv
;
using
namespace
cv
::
gpu
;
using
namespace
cvtest
;
using
namespace
testing
;
int
main
(
int
argc
,
char
**
argv
)
{
try
{
const
char
*
keys
=
"{ h | help ? | false | Print help}"
"{ i | info | false | Print information about system and exit }"
"{ d | device | -1 | Device on which tests will be executed (-1 means all devices) }"
;
CommandLineParser
cmd
(
argc
,
(
const
char
**
)
argv
,
keys
);
if
(
cmd
.
get
<
bool
>
(
"help"
))
{
cmd
.
printParams
();
return
0
;
}
printCudaInfo
();
if
(
cmd
.
get
<
bool
>
(
"info"
))
{
return
0
;
}
int
device
=
cmd
.
get
<
int
>
(
"device"
);
if
(
device
<
0
)
{
DeviceManager
::
instance
().
loadAll
();
std
::
cout
<<
"Run tests on all supported devices
\n
"
<<
std
::
endl
;
}
else
{
DeviceManager
::
instance
().
load
(
device
);
DeviceInfo
info
(
device
);
std
::
cout
<<
"Run tests on device "
<<
device
<<
" ["
<<
info
.
name
()
<<
"]
\n
"
<<
std
::
endl
;
}
TS
::
ptr
()
->
init
(
"cv"
);
InitGoogleTest
(
&
argc
,
argv
);
return
RUN_ALL_TESTS
();
}
catch
(
const
std
::
exception
&
e
)
{
std
::
cerr
<<
e
.
what
()
<<
std
::
endl
;
return
-
1
;
}
catch
(...)
{
std
::
cerr
<<
"Unknown error"
<<
std
::
endl
;
return
-
1
;
}
return
0
;
}
#else // HAVE_CUDA
CV_TEST_MAIN
(
"cv"
)
#endif // HAVE_CUDA
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录