Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Greenplum
Opencv
提交
2e8ed773
O
Opencv
项目概览
Greenplum
/
Opencv
12 个月 前同步成功
通知
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,发现更多精彩内容 >>
提交
2e8ed773
编写于
10月 25, 2012
作者:
M
marina.kolpakova
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
get rid of hard-coded values
上级
16dd09cc
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
16 addition
and
23 deletion
+16
-23
modules/objdetect/include/opencv2/objdetect/objdetect.hpp
modules/objdetect/include/opencv2/objdetect/objdetect.hpp
+0
-12
modules/objdetect/src/softcascade.cpp
modules/objdetect/src/softcascade.cpp
+16
-11
未找到文件。
modules/objdetect/include/opencv2/objdetect/objdetect.hpp
浏览文件 @
2e8ed773
...
...
@@ -529,18 +529,6 @@ public:
virtual
void
detectMultiScale
(
const
Mat
&
image
,
const
std
::
vector
<
cv
::
Rect
>&
rois
,
std
::
vector
<
Detection
>&
objects
,
int
rejectfactor
=
1
)
const
;
protected:
enum
{
BOOST
=
0
};
enum
{
FRAME_WIDTH
=
640
,
FRAME_HEIGHT
=
480
,
TOTAL_SCALES
=
55
,
CLASSIFIERS
=
5
,
ORIG_OBJECT_WIDTH
=
64
,
ORIG_OBJECT_HEIGHT
=
128
};
private:
struct
Filds
;
Filds
*
filds
;
...
...
modules/objdetect/src/softcascade.cpp
浏览文件 @
2e8ed773
...
...
@@ -270,6 +270,10 @@ struct cv::SoftCascade::Filds
std
::
vector
<
Level
>
levels
;
cv
::
Size
frameSize
;
enum
{
BOOST
=
0
};
typedef
std
::
vector
<
Octave
>::
iterator
octIt_t
;
void
detectAt
(
const
int
dx
,
const
int
dy
,
const
Level
&
level
,
const
ChannelStorage
&
storage
,
...
...
@@ -364,8 +368,11 @@ struct cv::SoftCascade::Filds
}
// compute levels of full pyramid
void
calcLevels
(
int
frameW
,
int
frameH
,
int
scales
)
void
calcLevels
(
const
cv
::
Size
&
curr
,
int
scales
)
{
if
(
frameSize
==
curr
)
return
;
frameSize
=
curr
;
CV_Assert
(
scales
>
1
);
levels
.
clear
();
float
logFactor
=
(
log
(
maxScale
)
-
log
(
minScale
))
/
(
scales
-
1
);
...
...
@@ -373,8 +380,8 @@ struct cv::SoftCascade::Filds
float
scale
=
minScale
;
for
(
int
sc
=
0
;
sc
<
scales
;
++
sc
)
{
int
width
=
std
::
max
(
0.0
f
,
frame
W
-
(
origObjWidth
*
scale
));
int
height
=
std
::
max
(
0.0
f
,
frame
H
-
(
origObjHeight
*
scale
));
int
width
=
std
::
max
(
0.0
f
,
frame
Size
.
width
-
(
origObjWidth
*
scale
));
int
height
=
std
::
max
(
0.0
f
,
frame
Size
.
height
-
(
origObjHeight
*
scale
));
float
logScale
=
log
(
scale
);
octIt_t
fit
=
fitOctave
(
logScale
);
...
...
@@ -434,11 +441,8 @@ struct cv::SoftCascade::Filds
string
featureTypeStr
=
(
string
)
root
[
SC_FEATURE_TYPE
];
CV_Assert
(
featureTypeStr
==
SC_ICF
);
origObjWidth
=
(
int
)
root
[
SC_ORIG_W
];
CV_Assert
(
origObjWidth
==
SoftCascade
::
ORIG_OBJECT_WIDTH
);
origObjWidth
=
(
int
)
root
[
SC_ORIG_W
];
origObjHeight
=
(
int
)
root
[
SC_ORIG_H
];
CV_Assert
(
origObjHeight
==
SoftCascade
::
ORIG_OBJECT_HEIGHT
);
// for each octave (~ one cascade in classic OpenCV xml)
FileNode
fn
=
root
[
SC_OCTAVES
];
...
...
@@ -451,7 +455,7 @@ struct cv::SoftCascade::Filds
for
(;
it
!=
it_end
;
++
it
)
{
FileNode
fns
=
*
it
;
Octave
octave
(
octIndex
,
cv
::
Size
(
SoftCascade
::
ORIG_OBJECT_WIDTH
,
SoftCascade
::
ORIG_OBJECT_HEIGHT
),
fns
);
Octave
octave
(
octIndex
,
cv
::
Size
(
origObjWidth
,
origObjHeight
),
fns
);
CV_Assert
(
octave
.
stages
>
0
);
octaves
.
push_back
(
octave
);
...
...
@@ -520,7 +524,7 @@ bool cv::SoftCascade::read( const cv::FileStorage& fs)
filds
=
new
Filds
;
Filds
&
flds
=
*
filds
;
if
(
!
flds
.
fill
(
fs
.
getFirstTopLevelNode
(),
minScale
,
maxScale
))
return
false
;
flds
.
calcLevels
(
FRAME_WIDTH
,
FRAME_HEIGHT
,
TOTAL_SCALES
);
// flds.calcLevels(FRAME_WIDTH, FRAME_HEIGHT, scales
);
return
true
;
}
...
...
@@ -534,9 +538,10 @@ void cv::SoftCascade::detectMultiScale(const Mat& image, const std::vector<cv::R
// only this window size allowed
CV_Assert
(
image
.
cols
==
640
&&
image
.
rows
==
480
);
objects
.
clear
();
Filds
&
fld
=
*
filds
;
fld
.
calcLevels
(
image
.
size
(),
scales
);
const
Filds
&
fld
=
*
filds
;
objects
.
clear
()
;
// create integrals
ChannelStorage
storage
(
image
,
fld
.
shrinkage
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录