Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv_contrib
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
opencv_contrib
Commits
6faed781
Commit
6faed781
authored
Jan 19, 2016
by
Alexander Alekhin
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #465 from comdiv:frcollectors
parents
06ecd05e
f9c59c86
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
591 additions
and
19 deletions
+591
-19
predict_collector.hpp
modules/face/include/opencv2/face/predict_collector.hpp
+0
-0
eigen_faces.cpp
modules/face/src/eigen_faces.cpp
+1
-1
fisher_faces.cpp
modules/face/src/fisher_faces.cpp
+1
-1
lbph_faces.cpp
modules/face/src/lbph_faces.cpp
+1
-1
map_predict_collector.cpp
modules/face/src/map_predict_collector.cpp
+87
-0
mindist_predict_collector.cpp
modules/face/src/mindist_predict_collector.cpp
+77
-0
predict_collector.cpp
modules/face/src/predict_collector.cpp
+88
-16
stat_predict_collector.cpp
modules/face/src/stat_predict_collector.cpp
+88
-0
std_predict_collector.cpp
modules/face/src/std_predict_collector.cpp
+66
-0
topn_predict_collector.cpp
modules/face/src/topn_predict_collector.cpp
+110
-0
vector_predict_collector.cpp
modules/face/src/vector_predict_collector.cpp
+72
-0
No files found.
modules/face/include/opencv2/face/predict_collector.hpp
View file @
6faed781
This diff is collapsed.
Click to expand it.
modules/face/src/eigen_faces.cpp
View file @
6faed781
...
...
@@ -118,7 +118,7 @@ void Eigenfaces::predict(InputArray _src, Ptr<PredictCollector> collector, const
for
(
size_t
sampleIdx
=
0
;
sampleIdx
<
_projections
.
size
();
sampleIdx
++
)
{
double
dist
=
norm
(
_projections
[
sampleIdx
],
q
,
NORM_L2
);
int
label
=
_labels
.
at
<
int
>
((
int
)
sampleIdx
);
if
(
!
collector
->
emi
t
(
label
,
dist
,
state
))
return
;
if
(
!
collector
->
collec
t
(
label
,
dist
,
state
))
return
;
}
}
...
...
modules/face/src/fisher_faces.cpp
View file @
6faed781
...
...
@@ -138,7 +138,7 @@ void Fisherfaces::predict(InputArray _src, Ptr<PredictCollector> collector, cons
for
(
size_t
sampleIdx
=
0
;
sampleIdx
<
_projections
.
size
();
sampleIdx
++
)
{
double
dist
=
norm
(
_projections
[
sampleIdx
],
q
,
NORM_L2
);
int
label
=
_labels
.
at
<
int
>
((
int
)
sampleIdx
);
if
(
!
collector
->
emi
t
(
label
,
dist
,
state
))
return
;
if
(
!
collector
->
collec
t
(
label
,
dist
,
state
))
return
;
}
}
...
...
modules/face/src/lbph_faces.cpp
View file @
6faed781
...
...
@@ -403,7 +403,7 @@ void LBPH::predict(InputArray _src, Ptr<PredictCollector> collector, const int s
for
(
size_t
sampleIdx
=
0
;
sampleIdx
<
_histograms
.
size
();
sampleIdx
++
)
{
double
dist
=
compareHist
(
_histograms
[
sampleIdx
],
query
,
HISTCMP_CHISQR_ALT
);
int
label
=
_labels
.
at
<
int
>
((
int
)
sampleIdx
);
if
(
!
collector
->
emi
t
(
label
,
dist
,
state
))
return
;
if
(
!
collector
->
collec
t
(
label
,
dist
,
state
))
return
;
}
}
...
...
modules/face/src/map_predict_collector.cpp
0 → 100644
View file @
6faed781
/*
By downloading, copying, installing or using the software you agree to this license.
If you do not agree to this license, do not download, install,
copy or use the software.
License Agreement
For Open Source Computer Vision Library
(3-clause BSD License)
Copyright (C) 2000-2015, Intel Corporation, all rights reserved.
Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved.
Copyright (C) 2009-2015, NVIDIA Corporation, all rights reserved.
Copyright (C) 2010-2013, Advanced Micro Devices, Inc., all rights reserved.
Copyright (C) 2015, OpenCV Foundation, all rights reserved.
Copyright (C) 2015, Itseez Inc., all rights reserved.
Third party copyrights are property of their respective owners.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the names of the copyright holders nor the names of the contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
This software is provided by the copyright holders and contributors "as is" and
any express or implied warranties, including, but not limited to, the implied
warranties of merchantability and fitness for a particular purpose are disclaimed.
In no event shall copyright holders or contributors be liable for any direct,
indirect, incidental, special, exemplary, or consequential damages
(including, but not limited to, procurement of substitute goods or services;
loss of use, data, or profits; or business interruption) however caused
and on any theory of liability, whether in contract, strict liability,
or tort (including negligence or otherwise) arising in any way out of
the use of this software, even if advised of the possibility of such damage.
*/
#include "opencv2/face/predict_collector.hpp"
#include "opencv2/core/cvstd.hpp"
#include <iterator>
namespace
cv
{
namespace
face
{
CV_WRAP
bool
MapPredictCollector
::
emit
(
const
int
label
,
const
double
dist
,
const
int
state
)
{
((
void
)
state
);
//if already in index check which is closer
if
(
_idx
->
find
(
label
)
!=
_idx
->
end
())
{
double
current
=
(
*
_idx
)[
label
];
if
(
dist
<
current
)
{
(
*
_idx
)[
label
]
=
dist
;
}
}
else
{
(
*
_idx
)[
label
]
=
dist
;
}
return
true
;
}
Ptr
<
std
::
map
<
int
,
double
>
>
MapPredictCollector
::
getResult
()
{
return
_idx
;
}
CV_WRAP
std
::
vector
<
std
::
pair
<
int
,
double
>
>
MapPredictCollector
::
getResultVector
()
{
std
::
vector
<
std
::
pair
<
int
,
double
>
>
result
;
std
::
copy
(
_idx
->
begin
(),
_idx
->
end
(),
std
::
back_inserter
(
result
));
return
result
;
}
CV_WRAP
Ptr
<
MapPredictCollector
>
MapPredictCollector
::
create
(
double
threshold
)
{
return
Ptr
<
MapPredictCollector
>
(
new
MapPredictCollector
(
threshold
));
}
}
}
\ No newline at end of file
modules/face/src/mindist_predict_collector.cpp
0 → 100644
View file @
6faed781
/*
By downloading, copying, installing or using the software you agree to this license.
If you do not agree to this license, do not download, install,
copy or use the software.
License Agreement
For Open Source Computer Vision Library
(3-clause BSD License)
Copyright (C) 2000-2015, Intel Corporation, all rights reserved.
Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved.
Copyright (C) 2009-2015, NVIDIA Corporation, all rights reserved.
Copyright (C) 2010-2013, Advanced Micro Devices, Inc., all rights reserved.
Copyright (C) 2015, OpenCV Foundation, all rights reserved.
Copyright (C) 2015, Itseez Inc., all rights reserved.
Third party copyrights are property of their respective owners.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the names of the copyright holders nor the names of the contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
This software is provided by the copyright holders and contributors "as is" and
any express or implied warranties, including, but not limited to, the implied
warranties of merchantability and fitness for a particular purpose are disclaimed.
In no event shall copyright holders or contributors be liable for any direct,
indirect, incidental, special, exemplary, or consequential damages
(including, but not limited to, procurement of substitute goods or services;
loss of use, data, or profits; or business interruption) however caused
and on any theory of liability, whether in contract, strict liability,
or tort (including negligence or otherwise) arising in any way out of
the use of this software, even if advised of the possibility of such damage.
*/
#include "opencv2/face/predict_collector.hpp"
#include "opencv2/core/cvstd.hpp"
namespace
cv
{
namespace
face
{
bool
MinDistancePredictCollector
::
emit
(
const
int
label
,
const
double
dist
,
const
int
state
)
{
((
void
)
state
);
_label
=
label
;
_dist
=
dist
;
return
true
;
}
CV_WRAP
bool
MinDistancePredictCollector
::
filter
(
int
*
label
,
double
*
dist
,
const
int
state
)
{
((
void
)
label
);
((
void
)
state
);
return
*
dist
<
_dist
;
}
int
MinDistancePredictCollector
::
getLabel
()
const
{
return
_label
;
}
double
MinDistancePredictCollector
::
getDist
()
const
{
return
_dist
;
}
Ptr
<
MinDistancePredictCollector
>
MinDistancePredictCollector
::
create
(
double
threshold
)
{
return
Ptr
<
MinDistancePredictCollector
>
(
new
MinDistancePredictCollector
(
threshold
));
}
}
}
\ No newline at end of file
modules/face/src/predict_collector.cpp
View file @
6faed781
...
...
@@ -46,40 +46,112 @@ the use of this software, even if advised of the possibility of such damage.
namespace
cv
{
namespace
face
{
void
PredictCollector
::
init
(
const
int
size
,
const
int
state
)
{
//reserve for some-how usage in descendants
_size
=
size
;
_state
=
state
;
}
bool
PredictCollector
::
emit
(
const
int
,
const
double
,
const
int
state
)
{
if
(
_state
==
state
)
{
return
false
;
// if it's own session - terminate it while default PredictCollector does nothing
CV_WRAP
bool
PredictCollector
::
defaultFilter
(
int
*
label
,
double
*
dist
,
const
int
state
)
{
// if state provided we should compare it with current state
if
(
_state
!=
0
&&
_state
!=
state
)
{
return
false
;
}
// if exclude label provided we can test it first
if
(
_excludeLabel
!=
0
&&
_excludeLabel
==
*
label
)
{
return
false
;
}
// initially we must recalculate distance by koef iv given
if
(
_distanceKoef
!=
1
)
{
*
dist
=
*
dist
*
_distanceKoef
;
}
// check upper threshold
if
(
*
dist
>
_threshold
)
{
return
false
;
}
//check inner threshold
if
(
*
dist
<
_minthreshold
)
{
return
false
;
}
return
true
;
}
bool
MinDistancePredictCollector
::
emit
(
const
int
label
,
const
double
dist
,
const
int
state
)
{
if
(
_state
!=
state
)
{
return
true
;
// it works only in one (same) session doesn't accept values for other states
}
if
(
dist
<
_threshhold
&&
dist
<
_dist
)
{
_label
=
label
;
_dist
=
dist
;
CV_WRAP
bool
PredictCollector
::
filter
(
int
*
label
,
double
*
dist
,
const
int
state
)
{
((
void
)
label
);
((
void
)
dist
);
((
void
)
state
);
return
true
;
//no custom logic at base level
}
bool
PredictCollector
::
emit
(
const
int
label
,
const
double
dist
,
const
int
state
)
{
((
void
)
label
);
((
void
)
dist
);
((
void
)
state
);
return
false
;
// terminate prediction - no any behavior in base PredictCollector
}
CV_WRAP
bool
PredictCollector
::
collect
(
int
label
,
double
dist
,
const
int
state
)
{
if
(
defaultFilter
(
&
label
,
&
dist
,
state
)
&&
filter
(
&
label
,
&
dist
,
state
))
{
return
emit
(
label
,
dist
,
state
);
}
return
true
;
}
int
MinDistancePredictCollector
::
getLabel
()
const
{
return
_label
;
CV_WRAP
int
PredictCollector
::
getSize
()
{
return
_size
;
}
CV_WRAP
void
PredictCollector
::
setSize
(
int
size
)
{
_size
=
size
;
}
CV_WRAP
int
PredictCollector
::
getState
()
{
return
_state
;
}
CV_WRAP
void
PredictCollector
::
setState
(
int
state
)
{
_state
=
state
;
}
CV_WRAP
int
PredictCollector
::
getExcludeLabel
()
{
return
_excludeLabel
;
}
CV_WRAP
void
PredictCollector
::
setExcludeLabel
(
int
excludeLabel
)
{
_excludeLabel
=
excludeLabel
;
}
CV_WRAP
double
PredictCollector
::
getDistanceKoef
()
{
return
_distanceKoef
;
}
CV_WRAP
void
PredictCollector
::
setDistanceKoef
(
double
distanceKoef
)
{
_distanceKoef
=
distanceKoef
;
}
double
MinDistancePredictCollector
::
getDist
()
const
{
return
_dist
;
CV_WRAP
double
PredictCollector
::
getMinThreshold
()
{
return
_minthreshold
;
}
Ptr
<
MinDistancePredictCollector
>
MinDistancePredictCollector
::
create
(
double
threshold
)
{
return
Ptr
<
MinDistancePredictCollector
>
(
new
MinDistancePredictCollector
(
threshold
));
CV_WRAP
void
PredictCollector
::
setMinThreshold
(
double
minthreshold
)
{
_minthreshold
=
minthreshold
;
}
}
...
...
modules/face/src/stat_predict_collector.cpp
0 → 100644
View file @
6faed781
/*
By downloading, copying, installing or using the software you agree to this license.
If you do not agree to this license, do not download, install,
copy or use the software.
License Agreement
For Open Source Computer Vision Library
(3-clause BSD License)
Copyright (C) 2000-2015, Intel Corporation, all rights reserved.
Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved.
Copyright (C) 2009-2015, NVIDIA Corporation, all rights reserved.
Copyright (C) 2010-2013, Advanced Micro Devices, Inc., all rights reserved.
Copyright (C) 2015, OpenCV Foundation, all rights reserved.
Copyright (C) 2015, Itseez Inc., all rights reserved.
Third party copyrights are property of their respective owners.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the names of the copyright holders nor the names of the contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
This software is provided by the copyright holders and contributors "as is" and
any express or implied warranties, including, but not limited to, the implied
warranties of merchantability and fitness for a particular purpose are disclaimed.
In no event shall copyright holders or contributors be liable for any direct,
indirect, incidental, special, exemplary, or consequential damages
(including, but not limited to, procurement of substitute goods or services;
loss of use, data, or profits; or business interruption) however caused
and on any theory of liability, whether in contract, strict liability,
or tort (including negligence or otherwise) arising in any way out of
the use of this software, even if advised of the possibility of such damage.
*/
#include "opencv2/face/predict_collector.hpp"
#include "opencv2/core/cvstd.hpp"
namespace
cv
{
namespace
face
{
CV_WRAP
bool
StatPredictCollector
::
emit
(
const
int
label
,
const
double
dist
,
const
int
state
)
{
((
void
)
state
);
((
void
)
label
);
_count
++
;
_sum
+=
dist
;
if
(
_min
>
dist
)
{
_min
=
dist
;
}
if
(
_max
<
dist
)
{
_max
=
dist
;
}
return
true
;
}
CV_WRAP
double
StatPredictCollector
::
getMin
()
{
return
_min
;
}
CV_WRAP
double
StatPredictCollector
::
getMax
()
{
return
_max
;
}
CV_WRAP
double
StatPredictCollector
::
getSum
()
{
return
_sum
;
}
CV_WRAP
int
StatPredictCollector
::
getCount
()
{
return
_count
;
}
CV_WRAP
Ptr
<
StatPredictCollector
>
StatPredictCollector
::
create
(
double
threshold
)
{
return
Ptr
<
StatPredictCollector
>
(
new
StatPredictCollector
(
threshold
));
}
}
}
\ No newline at end of file
modules/face/src/std_predict_collector.cpp
0 → 100644
View file @
6faed781
/*
By downloading, copying, installing or using the software you agree to this license.
If you do not agree to this license, do not download, install,
copy or use the software.
License Agreement
For Open Source Computer Vision Library
(3-clause BSD License)
Copyright (C) 2000-2015, Intel Corporation, all rights reserved.
Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved.
Copyright (C) 2009-2015, NVIDIA Corporation, all rights reserved.
Copyright (C) 2010-2013, Advanced Micro Devices, Inc., all rights reserved.
Copyright (C) 2015, OpenCV Foundation, all rights reserved.
Copyright (C) 2015, Itseez Inc., all rights reserved.
Third party copyrights are property of their respective owners.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the names of the copyright holders nor the names of the contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
This software is provided by the copyright holders and contributors "as is" and
any express or implied warranties, including, but not limited to, the implied
warranties of merchantability and fitness for a particular purpose are disclaimed.
In no event shall copyright holders or contributors be liable for any direct,
indirect, incidental, special, exemplary, or consequential damages
(including, but not limited to, procurement of substitute goods or services;
loss of use, data, or profits; or business interruption) however caused
and on any theory of liability, whether in contract, strict liability,
or tort (including negligence or otherwise) arising in any way out of
the use of this software, even if advised of the possibility of such damage.
*/
#include "opencv2/face/predict_collector.hpp"
#include "opencv2/core/cvstd.hpp"
namespace
cv
{
namespace
face
{
CV_WRAP
bool
StdPredictCollector
::
emit
(
const
int
label
,
const
double
dist
,
const
int
state
)
{
((
void
)
state
);
((
void
)
label
);
_s
+=
pow
(
dist
-
_avg
,
2
);
_n
++
;
return
true
;
}
CV_WRAP
double
StdPredictCollector
::
getResult
()
{
return
sqrt
(
_s
/
(
_n
-
1
));
}
CV_WRAP
Ptr
<
StdPredictCollector
>
StdPredictCollector
::
create
(
double
threshold
,
double
avg
)
{
return
Ptr
<
StdPredictCollector
>
(
new
StdPredictCollector
(
threshold
,
avg
));
}
}
}
\ No newline at end of file
modules/face/src/topn_predict_collector.cpp
0 → 100644
View file @
6faed781
/*
By downloading, copying, installing or using the software you agree to this license.
If you do not agree to this license, do not download, install,
copy or use the software.
License Agreement
For Open Source Computer Vision Library
(3-clause BSD License)
Copyright (C) 2000-2015, Intel Corporation, all rights reserved.
Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved.
Copyright (C) 2009-2015, NVIDIA Corporation, all rights reserved.
Copyright (C) 2010-2013, Advanced Micro Devices, Inc., all rights reserved.
Copyright (C) 2015, OpenCV Foundation, all rights reserved.
Copyright (C) 2015, Itseez Inc., all rights reserved.
Third party copyrights are property of their respective owners.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the names of the copyright holders nor the names of the contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
This software is provided by the copyright holders and contributors "as is" and
any express or implied warranties, including, but not limited to, the implied
warranties of merchantability and fitness for a particular purpose are disclaimed.
In no event shall copyright holders or contributors be liable for any direct,
indirect, incidental, special, exemplary, or consequential damages
(including, but not limited to, procurement of substitute goods or services;
loss of use, data, or profits; or business interruption) however caused
and on any theory of liability, whether in contract, strict liability,
or tort (including negligence or otherwise) arising in any way out of
the use of this software, even if advised of the possibility of such damage.
*/
#include "opencv2/face/predict_collector.hpp"
#include "opencv2/core/cvstd.hpp"
#include <iterator> // std::back_inserter
namespace
cv
{
namespace
face
{
CV_WRAP
bool
TopNPredictCollector
::
emit
(
const
int
label
,
const
double
dist
,
const
int
state
)
{
((
void
)
state
);
std
::
pair
<
int
,
double
>
p
=
std
::
make_pair
(
label
,
dist
);
if
(
_idx
->
size
()
==
0
||
p
.
second
<=
_idx
->
front
().
second
)
{
_idx
->
push_front
(
p
);
}
else
if
(
p
.
second
>=
_idx
->
back
().
second
)
{
_idx
->
push_back
(
p
);
}
else
{
typedef
std
::
list
<
std
::
pair
<
int
,
double
>
>::
iterator
it_type
;
for
(
it_type
i
=
_idx
->
begin
();
i
!=
_idx
->
end
();
i
++
)
{
if
(
p
.
second
<=
i
->
second
)
{
_idx
->
insert
(
i
,
p
);
break
;
}
}
}
return
true
;
}
CV_WRAP
bool
TopNPredictCollector
::
filter
(
int
*
label
,
double
*
dist
,
const
int
state
)
{
((
void
)
state
);
if
(
_idx
->
size
()
<
_size
)
return
true
;
//not full - can insert;
if
(
*
dist
>=
_idx
->
back
().
second
)
return
false
;
//too far distance
for
(
std
::
list
<
std
::
pair
<
int
,
double
>
>::
iterator
it
=
_idx
->
begin
();
it
!=
_idx
->
end
();
++
it
)
{
if
(
it
->
first
==
*
label
)
{
if
(
it
->
second
<=
*
dist
)
{
return
false
;
//has more close
}
else
{
_idx
->
erase
(
it
);
return
true
;
//no more require pop_back
}
}
}
_idx
->
pop_back
();
return
true
;
}
CV_WRAP
Ptr
<
std
::
list
<
std
::
pair
<
int
,
double
>
>
>
TopNPredictCollector
::
getResult
()
{
return
_idx
;
}
CV_WRAP
std
::
vector
<
std
::
pair
<
int
,
double
>
>
TopNPredictCollector
::
getResultVector
()
{
std
::
vector
<
std
::
pair
<
int
,
double
>
>
result
;
std
::
copy
(
_idx
->
begin
(),
_idx
->
end
(),
std
::
back_inserter
(
result
));
return
result
;
}
CV_WRAP
Ptr
<
TopNPredictCollector
>
TopNPredictCollector
::
create
(
size_t
size
,
double
threshold
)
{
return
Ptr
<
TopNPredictCollector
>
(
new
TopNPredictCollector
(
size
,
threshold
));
}
}
}
\ No newline at end of file
modules/face/src/vector_predict_collector.cpp
0 → 100644
View file @
6faed781
/*
By downloading, copying, installing or using the software you agree to this license.
If you do not agree to this license, do not download, install,
copy or use the software.
License Agreement
For Open Source Computer Vision Library
(3-clause BSD License)
Copyright (C) 2000-2015, Intel Corporation, all rights reserved.
Copyright (C) 2009-2011, Willow Garage Inc., all rights reserved.
Copyright (C) 2009-2015, NVIDIA Corporation, all rights reserved.
Copyright (C) 2010-2013, Advanced Micro Devices, Inc., all rights reserved.
Copyright (C) 2015, OpenCV Foundation, all rights reserved.
Copyright (C) 2015, Itseez Inc., all rights reserved.
Third party copyrights are property of their respective owners.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the names of the copyright holders nor the names of the contributors
may be used to endorse or promote products derived from this software
without specific prior written permission.
This software is provided by the copyright holders and contributors "as is" and
any express or implied warranties, including, but not limited to, the implied
warranties of merchantability and fitness for a particular purpose are disclaimed.
In no event shall copyright holders or contributors be liable for any direct,
indirect, incidental, special, exemplary, or consequential damages
(including, but not limited to, procurement of substitute goods or services;
loss of use, data, or profits; or business interruption) however caused
and on any theory of liability, whether in contract, strict liability,
or tort (including negligence or otherwise) arising in any way out of
the use of this software, even if advised of the possibility of such damage.
*/
#include "opencv2/face/predict_collector.hpp"
#include "opencv2/core/cvstd.hpp"
namespace
cv
{
namespace
face
{
CV_WRAP
bool
VectorPredictCollector
::
emit
(
const
int
label
,
const
double
dist
,
const
int
state
)
{
((
void
)
state
);
_idx
->
push_back
(
std
::
pair
<
int
,
double
>
(
label
,
dist
));
return
true
;
}
Ptr
<
std
::
vector
<
std
::
pair
<
int
,
double
>
>
>
VectorPredictCollector
::
getResult
()
{
return
_idx
;
}
CV_WRAP
std
::
vector
<
std
::
pair
<
int
,
double
>
>
VectorPredictCollector
::
getResultVector
()
{
return
(
*
_idx
);
}
CV_WRAP
Ptr
<
VectorPredictCollector
>
VectorPredictCollector
::
create
(
double
threshold
)
{
return
Ptr
<
VectorPredictCollector
>
(
new
VectorPredictCollector
(
threshold
));
}
}
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment