Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
e01335bf
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,发现更多精彩内容 >>
提交
e01335bf
编写于
3月 22, 2013
作者:
V
Vadim Pisarevsky
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fixed buffer size and restored the use of compressed files in ml's load_save tests.
上级
4331f76d
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
42 addition
and
22 deletion
+42
-22
modules/ml/src/svm.cpp
modules/ml/src/svm.cpp
+2
-3
modules/ml/test/test_save_load.cpp
modules/ml/test/test_save_load.cpp
+40
-19
未找到文件。
modules/ml/src/svm.cpp
浏览文件 @
e01335bf
...
...
@@ -1551,14 +1551,13 @@ void CvSVM::optimize_linear_svm()
return
;
int
var_count
=
get_var_count
();
cv
::
AutoBuffer
<
double
>
vbuf
;
cv
::
AutoBuffer
<
double
>
vbuf
(
var_count
)
;
double
*
v
=
vbuf
;
int
sample_size
=
(
int
)(
var_count
*
sizeof
(
sv
[
0
][
0
]));
float
**
new_sv
=
(
float
**
)
cvMemStorageAlloc
(
storage
,
df_count
*
sizeof
(
new_sv
[
0
]));
for
(
i
=
0
;
i
<
df_count
;
i
++
)
{
new_sv
[
i
]
=
(
float
*
)
cvMemStorageAlloc
(
storage
,
sample_size
);
new_sv
[
i
]
=
(
float
*
)
cvMemStorageAlloc
(
storage
,
var_count
*
sizeof
(
new_sv
[
i
][
0
])
);
float
*
dst
=
new_sv
[
i
];
memset
(
v
,
0
,
var_count
*
sizeof
(
v
[
0
]));
int
j
,
k
,
sv_count
=
df
[
i
].
sv_count
;
...
...
modules/ml/test/test_save_load.cpp
浏览文件 @
e01335bf
...
...
@@ -64,11 +64,11 @@ int CV_SLMLTest::run_test_case( int testCaseIdx )
if
(
code
==
cvtest
::
TS
::
OK
)
{
get_error
(
testCaseIdx
,
CV_TEST_ERROR
,
&
test_resps1
);
fname1
=
tempfile
(
".yml"
);
fname1
=
tempfile
(
".yml
.gz
"
);
save
(
fname1
.
c_str
()
);
load
(
fname1
.
c_str
()
);
get_error
(
testCaseIdx
,
CV_TEST_ERROR
,
&
test_resps2
);
fname2
=
tempfile
(
".yml"
);
fname2
=
tempfile
(
".yml
.gz
"
);
save
(
fname2
.
c_str
()
);
}
else
...
...
@@ -82,28 +82,49 @@ int CV_SLMLTest::validate_test_results( int testCaseIdx )
int
code
=
cvtest
::
TS
::
OK
;
// 1. compare files
ifstream
f1
(
fname1
.
c_str
()
),
f2
(
fname2
.
c_str
()
);
s
tring
s1
,
s2
;
i
nt
lineIdx
=
1
;
CV_Assert
(
f1
.
is_open
()
&&
f2
.
is_open
()
)
;
for
(
;
!
f1
.
eof
()
&&
!
f2
.
eof
();
lineIdx
++
)
FILE
*
fs1
=
fopen
(
fname1
.
c_str
(),
"rb"
),
*
fs2
=
fopen
(
fname2
.
c_str
(),
"rb"
);
s
ize_t
sz1
=
0
,
sz2
=
0
;
i
f
(
!
fs1
||
!
fs2
)
code
=
cvtest
::
TS
::
FAIL_MISSING_TEST_DATA
;
if
(
code
>=
0
)
{
getline
(
f1
,
s1
);
getline
(
f2
,
s2
);
if
(
s1
.
compare
(
s2
)
!=
0
)
fseek
(
fs1
,
0
,
SEEK_END
);
fseek
(
fs2
,
0
,
SEEK_END
);
sz1
=
ftell
(
fs1
);
sz2
=
ftell
(
fs2
);
fseek
(
fs1
,
0
,
SEEK_SET
);
fseek
(
fs2
,
0
,
SEEK_SET
);
}
if
(
sz1
!=
sz2
)
code
=
cvtest
::
TS
::
FAIL_INVALID_OUTPUT
;
if
(
code
>=
0
)
{
const
int
BUFSZ
=
1024
;
uchar
buf1
[
BUFSZ
],
buf2
[
BUFSZ
];
for
(
size_t
pos
=
0
;
pos
<
sz1
;
)
{
ts
->
printf
(
cvtest
::
TS
::
LOG
,
"in test case %d first (%s) and second (%s) saved files differ in %d-th line:
\n
%s
\n\t
vs
\n
%s
\n
"
,
testCaseIdx
,
fname1
.
c_str
(),
fname2
.
c_str
(),
lineIdx
,
s1
.
empty
()
?
""
:
s1
.
c_str
(),
s2
.
empty
()
?
""
:
s2
.
c_str
()
);
code
=
cvtest
::
TS
::
FAIL_INVALID_OUTPUT
;
break
;
size_t
r1
=
fread
(
buf1
,
1
,
BUFSZ
,
fs1
);
size_t
r2
=
fread
(
buf2
,
1
,
BUFSZ
,
fs2
);
if
(
r1
!=
r2
||
memcmp
(
buf1
,
buf2
,
r1
)
!=
0
)
{
ts
->
printf
(
cvtest
::
TS
::
LOG
,
"in test case %d first (%s) and second (%s) saved files differ in %d-th kb
\n
"
,
testCaseIdx
,
fname1
.
c_str
(),
fname2
.
c_str
(),
(
int
)
pos
);
code
=
cvtest
::
TS
::
FAIL_INVALID_OUTPUT
;
break
;
}
pos
+=
r1
;
}
}
f1
.
close
();
f2
.
close
();
if
(
fs1
)
fclose
(
fs1
);
if
(
fs2
)
fclose
(
fs2
);
// delete temporary files
if
(
code
==
cvtest
::
TS
::
OK
)
if
(
code
>=
0
)
{
remove
(
fname1
.
c_str
()
);
remove
(
fname2
.
c_str
()
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录