Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenCV
opencv
提交
89ce2dc4
O
opencv
项目概览
OpenCV
/
opencv
上一次同步 9 个月
通知
992
Star
71100
Fork
55581
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
O
opencv
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
89ce2dc4
编写于
2月 28, 2017
作者:
A
Alexander Alekhin
提交者:
Vladislav Sovrasov
3月 03, 2017
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
core: DMatch I/O tests
上级
5d31d6eb
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
128 addition
and
0 deletion
+128
-0
modules/core/test/test_io.cpp
modules/core/test/test_io.cpp
+128
-0
未找到文件。
modules/core/test/test_io.cpp
浏览文件 @
89ce2dc4
...
...
@@ -1084,3 +1084,131 @@ TEST(Core_InputOutput, filestorage_dmatch_io)
}
}
}
#if 0
TEST(Core_InputOutput, FileStorage_DMatch)
{
cv::FileStorage fs("dmatch.yml", cv::FileStorage::WRITE | cv::FileStorage::MEMORY);
cv::DMatch d(1, 2, 3, -1.5f);
EXPECT_NO_THROW(fs << "d" << d);
cv::String fs_result = fs.releaseAndGetString();
EXPECT_STREQ(fs_result.c_str(), "%YAML:1.0\n---\nd: [ 1, 2, 3, -1.5000000000000000e+00 ]\n");
cv::FileStorage fs_read(fs_result, cv::FileStorage::READ | cv::FileStorage::MEMORY);
cv::DMatch d_read;
ASSERT_NO_THROW(fs_read["d"] >> d_read);
EXPECT_EQ(d.queryIdx, d_read.queryIdx);
EXPECT_EQ(d.trainIdx, d_read.trainIdx);
EXPECT_EQ(d.imgIdx, d_read.imgIdx);
EXPECT_EQ(d.distance, d_read.distance);
}
#endif
TEST
(
Core_InputOutput
,
FileStorage_DMatch_vector
)
{
cv
::
FileStorage
fs
(
"dmatch.yml"
,
cv
::
FileStorage
::
WRITE
|
cv
::
FileStorage
::
MEMORY
);
cv
::
DMatch
d1
(
1
,
2
,
3
,
-
1.5
f
);
cv
::
DMatch
d2
(
2
,
3
,
4
,
1.5
f
);
cv
::
DMatch
d3
(
3
,
2
,
1
,
0.5
f
);
std
::
vector
<
cv
::
DMatch
>
dv
;
dv
.
push_back
(
d1
);
dv
.
push_back
(
d2
);
dv
.
push_back
(
d3
);
EXPECT_NO_THROW
(
fs
<<
"dv"
<<
dv
);
cv
::
String
fs_result
=
fs
.
releaseAndGetString
();
EXPECT_STREQ
(
fs_result
.
c_str
(),
"%YAML:1.0
\n
"
"---
\n
"
#if 0
"dv:\n"
" - [ 1, 2, 3, -1.5000000000000000e+00 ]\n"
" - [ 2, 3, 4, 1.5000000000000000e+00 ]\n"
" - [ 3, 2, 1, 5.0000000000000000e-01 ]\n"
#else
"dv: [ 1, 2, 3, -1.5000000000000000e+00, 2, 3, 4, 1.5000000000000000e+00,
\n
"
" 3, 2, 1, 5.0000000000000000e-01 ]
\n
"
#endif
);
cv
::
FileStorage
fs_read
(
fs_result
,
cv
::
FileStorage
::
READ
|
cv
::
FileStorage
::
MEMORY
);
std
::
vector
<
cv
::
DMatch
>
dv_read
;
ASSERT_NO_THROW
(
fs_read
[
"dv"
]
>>
dv_read
);
ASSERT_EQ
(
dv
.
size
(),
dv_read
.
size
());
for
(
size_t
i
=
0
;
i
<
dv
.
size
();
i
++
)
{
EXPECT_EQ
(
dv
[
i
].
queryIdx
,
dv_read
[
i
].
queryIdx
);
EXPECT_EQ
(
dv
[
i
].
trainIdx
,
dv_read
[
i
].
trainIdx
);
EXPECT_EQ
(
dv
[
i
].
imgIdx
,
dv_read
[
i
].
imgIdx
);
EXPECT_EQ
(
dv
[
i
].
distance
,
dv_read
[
i
].
distance
);
}
}
TEST
(
Core_InputOutput
,
FileStorage_DMatch_vector_vector
)
{
cv
::
FileStorage
fs
(
"dmatch.yml"
,
cv
::
FileStorage
::
WRITE
|
cv
::
FileStorage
::
MEMORY
);
cv
::
DMatch
d1
(
1
,
2
,
3
,
-
1.5
f
);
cv
::
DMatch
d2
(
2
,
3
,
4
,
1.5
f
);
cv
::
DMatch
d3
(
3
,
2
,
1
,
0.5
f
);
std
::
vector
<
cv
::
DMatch
>
dv1
;
dv1
.
push_back
(
d1
);
dv1
.
push_back
(
d2
);
dv1
.
push_back
(
d3
);
std
::
vector
<
cv
::
DMatch
>
dv2
;
dv2
.
push_back
(
d3
);
dv2
.
push_back
(
d1
);
std
::
vector
<
std
::
vector
<
cv
::
DMatch
>
>
dvv
;
dvv
.
push_back
(
dv1
);
dvv
.
push_back
(
dv2
);
EXPECT_NO_THROW
(
fs
<<
"dvv"
<<
dvv
);
cv
::
String
fs_result
=
fs
.
releaseAndGetString
();
EXPECT_STREQ
(
fs_result
.
c_str
(),
"%YAML:1.0
\n
"
"---
\n
"
"dvv:
\n
"
#if 0
" -\n"
" - [ 1, 2, 3, -1.5000000000000000e+00 ]\n"
" - [ 2, 3, 4, 1.5000000000000000e+00 ]\n"
" - [ 3, 2, 1, 5.0000000000000000e-01 ]\n"
" -\n"
" - [ 3, 2, 1, 5.0000000000000000e-01 ]\n"
" - [ 1, 2, 3, -1.5000000000000000e+00 ]\n"
#else
" - [ 1, 2, 3, -1.5000000000000000e+00, 2, 3, 4, 1.5000000000000000e+00,
\n
"
" 3, 2, 1, 5.0000000000000000e-01 ]
\n
"
" - [ 3, 2, 1, 5.0000000000000000e-01, 1, 2, 3, -1.5000000000000000e+00 ]
\n
"
#endif
);
cv
::
FileStorage
fs_read
(
fs_result
,
cv
::
FileStorage
::
READ
|
cv
::
FileStorage
::
MEMORY
);
std
::
vector
<
std
::
vector
<
cv
::
DMatch
>
>
dvv_read
;
ASSERT_NO_THROW
(
fs_read
[
"dvv"
]
>>
dvv_read
);
ASSERT_EQ
(
dvv
.
size
(),
dvv_read
.
size
());
for
(
size_t
j
=
0
;
j
<
dvv
.
size
();
j
++
)
{
const
std
::
vector
<
cv
::
DMatch
>&
dv
=
dvv
[
j
];
const
std
::
vector
<
cv
::
DMatch
>&
dv_read
=
dvv_read
[
j
];
ASSERT_EQ
(
dvv
.
size
(),
dvv_read
.
size
());
for
(
size_t
i
=
0
;
i
<
dv
.
size
();
i
++
)
{
EXPECT_EQ
(
dv
[
i
].
queryIdx
,
dv_read
[
i
].
queryIdx
);
EXPECT_EQ
(
dv
[
i
].
trainIdx
,
dv_read
[
i
].
trainIdx
);
EXPECT_EQ
(
dv
[
i
].
imgIdx
,
dv_read
[
i
].
imgIdx
);
EXPECT_EQ
(
dv
[
i
].
distance
,
dv_read
[
i
].
distance
);
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录