Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
O
opencv
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
Commits
05a47d90
Commit
05a47d90
authored
Apr 17, 2014
by
Ilya Lavrenov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
cmd option
parent
87eb1b8f
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
72 additions
and
19 deletions
+72
-19
base.hpp
modules/core/include/opencv2/core/base.hpp
+3
-1
private.hpp
modules/core/include/opencv2/core/private.hpp
+2
-0
system.cpp
modules/core/src/system.cpp
+7
-2
color.cpp
modules/imgproc/src/color.cpp
+8
-3
imgwarp.cpp
modules/imgproc/src/imgwarp.cpp
+1
-1
morph.cpp
modules/imgproc/src/morph.cpp
+0
-1
ts.hpp
modules/ts/include/opencv2/ts.hpp
+5
-2
ts_ext.hpp
modules/ts/include/opencv2/ts/ts_ext.hpp
+11
-8
ts.cpp
modules/ts/src/ts.cpp
+29
-0
ts_perf.cpp
modules/ts/src/ts_perf.cpp
+6
-1
No files found.
modules/core/include/opencv2/core/base.hpp
View file @
05a47d90
...
...
@@ -560,12 +560,14 @@ namespace cudev
template
<
typename
_Tp
>
class
GpuMat_
;
}
namespace
ipp
{
CV_EXPORTS
void
setIppStatus
(
int
status
,
const
char
*
const
funcname
=
NULL
,
const
char
*
const
filename
=
NULL
,
int
line
=
0
);
CV_EXPORTS
int
getIppStatus
();
CV_EXPORTS
String
getIppErrorLocation
();
#define setIppErrorStatus() setIppStatus(-1, CV_Func, __FILE__, __LINE__)
}
// ipp
}
// cv
#endif //__OPENCV_CORE_BASE_HPP__
modules/core/include/opencv2/core/private.hpp
View file @
05a47d90
...
...
@@ -218,6 +218,8 @@ CV_EXPORTS void scalarToRawData(const cv::Scalar& s, void* buf, int type, int un
# endif
# define IPP_VERSION_X100 (IPP_VERSION_MAJOR * 100 + IPP_VERSION_MINOR)
#define setIppErrorStatus() cv::ipp::setIppStatus(-1, CV_Func, __FILE__, __LINE__)
static
inline
IppiSize
ippiSize
(
int
width
,
int
height
)
{
IppiSize
size
=
{
width
,
height
};
...
...
modules/core/src/system.cpp
View file @
05a47d90
...
...
@@ -1063,9 +1063,12 @@ TLSStorage::~TLSStorage()
TLSData
<
CoreTLSData
>
coreTlsData
;
namespace
ipp
{
static
int
ippStatus
=
0
;
// 0 - all is ok, -1 - IPP functions failed
static
const
char
*
funcname
,
*
filename
;
static
int
linen
;
static
const
char
*
funcname
=
NULL
,
*
filename
=
NULL
;
static
int
linen
=
0
;
void
setIppStatus
(
int
status
,
const
char
*
const
_funcname
,
const
char
*
const
_filename
,
int
_line
)
{
...
...
@@ -1085,6 +1088,8 @@ String getIppErrorLocation()
return
format
(
"%s:%d %s"
,
filename
?
filename
:
""
,
linen
,
funcname
?
funcname
:
""
);
}
}
// namespace ipp
}
// namespace cv
/* End of file. */
modules/imgproc/src/color.cpp
View file @
05a47d90
...
...
@@ -374,7 +374,7 @@ static ippiGeneralFunc ippiHLS2RGBTab[] =
0
,
(
ippiGeneralFunc
)
ippiHLSToRGB_32f_C3R
,
0
,
0
};
#if !defined(HAVE_IPP_ICV_ONLY)
#if !defined(HAVE_IPP_ICV_ONLY)
&& 0
static
ippiGeneralFunc
ippiRGBToLUVTab
[]
=
{
(
ippiGeneralFunc
)
ippiRGBToLUV_8u_C3R
,
0
,
(
ippiGeneralFunc
)
ippiRGBToLUV_16u_C3R
,
0
,
...
...
@@ -3920,6 +3920,7 @@ void cv::cvtColor( InputArray _src, OutputArray _dst, int code, int dcn )
dst
=
_dst
.
getMat
();
#if defined HAVE_IPP && !defined(HAVE_IPP_ICV_ONLY)
#if 0
if (code == CV_LBGR2Lab && scn == 3 && depth == CV_8U)
{
if (CvtColorIPPLoop(src, dst, IPPGeneralFunctor((ippiGeneralFunc)ippiBGRToLab_8u_C3R)))
...
...
@@ -3933,7 +3934,9 @@ void cv::cvtColor( InputArray _src, OutputArray _dst, int code, int dcn )
return;
setIppErrorStatus();
}
else
if
(
code
==
CV_LRGB2Lab
&&
scn
==
3
&&
depth
==
CV_8U
)
else
#endif
if
(
code
==
CV_LRGB2Lab
&&
scn
==
3
&&
depth
==
CV_8U
)
{
if
(
CvtColorIPPLoop
(
src
,
dst
,
IPPReorderGeneralFunctor
(
ippiSwapChannelsC3RTab
[
depth
],
(
ippiGeneralFunc
)
ippiBGRToLab_8u_C3R
,
2
,
1
,
0
,
depth
)))
...
...
@@ -3947,6 +3950,7 @@ void cv::cvtColor( InputArray _src, OutputArray _dst, int code, int dcn )
return
;
setIppErrorStatus
();
}
#if 0
else if (code == CV_LRGB2Luv && scn == 3)
{
if (CvtColorIPPLoop(src, dst, IPPGeneralFunctor(ippiRGBToLUVTab[depth])))
...
...
@@ -3974,6 +3978,7 @@ void cv::cvtColor( InputArray _src, OutputArray _dst, int code, int dcn )
return;
setIppErrorStatus();
}
#endif
#endif
if
(
code
==
CV_BGR2Lab
||
code
==
CV_RGB2Lab
||
...
...
@@ -4036,7 +4041,6 @@ void cv::cvtColor( InputArray _src, OutputArray _dst, int code, int dcn )
return;
setIppErrorStatus();
}
#endif
if( code == CV_Luv2LRGB && dcn == 3 )
{
if( CvtColorIPPLoop(src, dst, IPPGeneralFunctor(ippiLUVToRGBTab[depth])) )
...
...
@@ -4060,6 +4064,7 @@ void cv::cvtColor( InputArray _src, OutputArray _dst, int code, int dcn )
ippiSwapChannelsC3C4RTab[depth], 2, 1, 0, depth)) )
return;
}
#endif
#endif
if
(
code
==
CV_Lab2BGR
||
code
==
CV_Lab2RGB
||
...
...
modules/imgproc/src/imgwarp.cpp
View file @
05a47d90
...
...
@@ -1876,7 +1876,7 @@ static int computeResizeAreaTab( int ssize, int dsize, int cn, double scale, Dec
return
k
;
}
#define CHECK_IPP_STATUS(STATUS) if (STATUS
<
0) { *ok = false; return; }
#define CHECK_IPP_STATUS(STATUS) if (STATUS
!=
0) { *ok = false; return; }
#define SET_IPP_RESIZE_LINEAR_FUNC_PTR(TYPE, CN) \
func = (ippiResizeFunc)ippiResizeLinear_##TYPE##_##CN##R; \
...
...
modules/imgproc/src/morph.cpp
View file @
05a47d90
...
...
@@ -1337,7 +1337,6 @@ static bool IPPMorphOp(int op, InputArray _src, OutputArray _dst,
if
(
IPPMorphReplicate
(
op
,
src
,
dst
,
kernel
,
ksize
,
anchor
,
rectKernel
))
return
true
;
setIppErrorStatus
();
return
false
;
}
#endif
...
...
modules/ts/include/opencv2/ts.hpp
View file @
05a47d90
...
...
@@ -554,15 +554,17 @@ CV_EXPORTS void printVersionInfo(bool useStdOut = true);
#endif
#endif
#if
defined(HAVE_OPENCL)
#if
def HAVE_OPENCL
namespace
cvtest
{
namespace
ocl
{
void
dumpOpenCLDevice
();
}}
}
}
#define TEST_DUMP_OCL_INFO cvtest::ocl::dumpOpenCLDevice();
#else
#define TEST_DUMP_OCL_INFO
#endif
void
parseCustomOptions
(
int
argc
,
char
**
argv
);
#define CV_TEST_MAIN(resourcesubdir, ...) \
int main(int argc, char **argv) \
{ \
...
...
@@ -571,6 +573,7 @@ int main(int argc, char **argv) \
cvtest::printVersionInfo(); \
__CV_TEST_EXEC_ARGS(__VA_ARGS__) \
TEST_DUMP_OCL_INFO \
parseCustomOptions(argc, argv); \
return RUN_ALL_TESTS(); \
}
...
...
modules/ts/include/opencv2/ts/ts_ext.hpp
View file @
05a47d90
// This file is part of OpenCV project.
// It is subject to the license terms in the LICENSE file found in the top-level directory
// of this distribution and at http://opencv.org/license.html.
// Copyright (C) 2014, Intel, Inc., all rights reserved.
// Third party copyrights are property of their respective owners.
#ifndef __OPENCV_TS_EXT_HPP__
#define __OPENCV_TS_EXT_HPP__
#define CHECK_IPP_STATUS \
do \
{ \
EXPECT_LE(0, getIppStatus()) << getIppErrorLocation().c_str(); \
} while ((void)0, 0)
void
checkIppStatus
();
#undef TEST
#define TEST(test_case_name, test_name) \
...
...
@@ -29,7 +32,7 @@
::testing::Test::TearDownTestCase, \
new ::testing::internal::TestFactoryImpl<\
GTEST_TEST_CLASS_NAME_(test_case_name, test_name)>);\
void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::TestBody() {
setIppStatus(0); Body(); CHECK_IPP_STATUS
; } \
void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::TestBody() {
cv::ipp::setIppStatus(0); Body(); checkIppStatus()
; } \
void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::Body()
#undef TEST_F
...
...
@@ -54,7 +57,7 @@
test_fixture::TearDownTestCase, \
new ::testing::internal::TestFactoryImpl<\
GTEST_TEST_CLASS_NAME_(test_fixture, test_name)>);\
void GTEST_TEST_CLASS_NAME_(test_fixture, test_name)::TestBody() {
setIppStatus(0); Body(); CHECK_IPP_STATUS
; } \
void GTEST_TEST_CLASS_NAME_(test_fixture, test_name)::TestBody() {
cv::ipp::setIppStatus(0); Body(); checkIppStatus()
; } \
void GTEST_TEST_CLASS_NAME_(test_fixture, test_name)::Body()
#undef TEST_P
...
...
@@ -83,7 +86,7 @@
int GTEST_TEST_CLASS_NAME_(test_case_name, \
test_name)::gtest_registering_dummy_ = \
GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::AddToRegistry(); \
void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::TestBody() {
setIppStatus(0); Body(); CHECK_IPP_STATUS
; } \
void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::TestBody() {
cv::ipp::setIppStatus(0); Body(); checkIppStatus()
; } \
void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::Body()
#endif // __OPENCV_TS_EXT_HPP__
modules/ts/src/ts.cpp
View file @
05a47d90
...
...
@@ -658,4 +658,33 @@ void smoothBorder(Mat& img, const Scalar& color, int delta)
}
//namespace cvtest
bool
test_ipp_check
=
false
;
void
checkIppStatus
()
{
if
(
test_ipp_check
)
{
int
status
=
cv
::
ipp
::
getIppStatus
();
EXPECT_LE
(
0
,
status
)
<<
cv
::
ipp
::
getIppErrorLocation
().
c_str
();
}
}
void
parseCustomOptions
(
int
argc
,
char
**
argv
)
{
const
char
*
const
command_line_keys
=
"{ ipp test_ipp_check |false |check whether IPP works without failures }"
"{ h help |false |print help info }"
;
cv
::
CommandLineParser
parser
(
argc
,
argv
,
command_line_keys
);
if
(
parser
.
get
<
bool
>
(
"help"
))
{
std
::
cout
<<
"
\n
Available options besides google test option:
\n
"
;
parser
.
printMessage
();
}
test_ipp_check
=
parser
.
get
<
bool
>
(
"test_ipp_check"
);
if
(
!
test_ipp_check
)
test_ipp_check
=
getenv
(
"OPENCV_IPP_CHECK"
)
!=
NULL
;
}
/* End of file. */
modules/ts/src/ts_perf.cpp
View file @
05a47d90
...
...
@@ -31,6 +31,7 @@ static double param_time_limit;
static
int
param_threads
;
static
bool
param_write_sanity
;
static
bool
param_verify_sanity
;
extern
bool
test_ipp_check
;
#ifdef HAVE_CUDA
static
int
param_cuda_device
;
#endif
...
...
@@ -670,6 +671,9 @@ void TestBase::Init(const std::vector<std::string> & availableImpls,
"{ perf_time_limit |3.0 |default time limit for a single test (in seconds)}"
#endif
"{ perf_max_deviation |1.0 |}"
#ifdef HAVE_IPP
"{ perf_ipp_check |false |check whether IPP works without failures}"
#endif
"{ help h |false |print help info}"
#ifdef HAVE_CUDA
"{ perf_cuda_device |0 |run CUDA test suite onto specific CUDA capable device}"
...
...
@@ -713,7 +717,8 @@ void TestBase::Init(const std::vector<std::string> & availableImpls,
param_force_samples
=
args
.
get
<
unsigned
int
>
(
"perf_force_samples"
);
param_write_sanity
=
args
.
has
(
"perf_write_sanity"
);
param_verify_sanity
=
args
.
has
(
"perf_verify_sanity"
);
param_threads
=
args
.
get
<
int
>
(
"perf_threads"
);
test_ipp_check
=
!
args
.
has
(
"perf_ipp_check"
)
?
getenv
(
"OPENCV_IPP_CHECK"
)
!=
NULL
:
true
;
param_threads
=
args
.
get
<
int
>
(
"perf_threads"
);
#ifdef ANDROID
param_affinity_mask
=
args
.
get
<
int
>
(
"perf_affinity_mask"
);
log_power_checkpoints
=
args
.
has
(
"perf_log_power_checkpoints"
);
...
...
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