diff --git a/modules/core/src/algorithm.cpp b/modules/core/src/algorithm.cpp index 90350d8bf6..9c46d1cdd7 100644 --- a/modules/core/src/algorithm.cpp +++ b/modules/core/src/algorithm.cpp @@ -415,6 +415,8 @@ void AlgorithmInfo::write(const Algorithm* algo, FileStorage& fs) const cv::write(fs, pname, algo->get(pname)); else if( p.type == Param::BOOLEAN ) cv::write(fs, pname, (int)algo->get(pname)); + else if( p.type == Param::SHORT ) + cv::write(fs, pname, (int)algo->get(pname)); else if( p.type == Param::REAL ) cv::write(fs, pname, algo->get(pname)); else if( p.type == Param::STRING ) @@ -430,7 +432,10 @@ void AlgorithmInfo::write(const Algorithm* algo, FileStorage& fs) const nestedAlgo->write(fs); } else - CV_Error( CV_StsUnsupportedFormat, "unknown/unsupported parameter type"); + { + string msg = format("unknown/unsupported type of '%s' parameter == %d", pname.c_str(), p.type); + CV_Error( CV_StsUnsupportedFormat, msg.c_str()); + } } } @@ -446,7 +451,7 @@ void AlgorithmInfo::read(Algorithm* algo, const FileNode& fn) const const FileNode n = fn[pname]; if( n.empty() ) continue; - if( p.type == Param::INT ) + if( p.type == Param::INT || p.type == Param::SHORT ) { int val = (int)n; info->set(algo, pname.c_str(), p.type, &val, true); @@ -486,7 +491,10 @@ void AlgorithmInfo::read(Algorithm* algo, const FileNode& fn) const info->set(algo, pname.c_str(), p.type, &nestedAlgo, true); } else - CV_Error( CV_StsUnsupportedFormat, "unknown/unsupported parameter type"); + { + string msg = format("unknown/unsupported type of '%s' parameter == %d", pname.c_str(), p.type); + CV_Error( CV_StsUnsupportedFormat, msg.c_str()); + } } } @@ -589,7 +597,7 @@ void AlgorithmInfo::set(Algorithm* algo, const char* parameter, int argType, con GetSetParam f; f.set_int = p->setter; - if( argType == Param::INT || argType == Param::BOOLEAN || argType == Param::REAL ) + if( argType == Param::INT || argType == Param::BOOLEAN || argType == Param::REAL || argType == Param::SHORT ) { if ( !( p->type == Param::INT || p->type == Param::REAL || p->type == Param::BOOLEAN || (p->type == Param::SHORT && argType == Param::INT)) ) { @@ -805,7 +813,10 @@ void AlgorithmInfo::get(const Algorithm* algo, const char* parameter, int argTyp *(Ptr*)((uchar*)algo + p->offset); } else - CV_Error(CV_StsBadArg, "Unknown/unsupported parameter type"); + { + string message = getErrorMessageForWrongArgumentInGetter(algo->name(), parameter, p->type, argType); + CV_Error(CV_StsBadArg, message); + } } @@ -864,7 +875,7 @@ void AlgorithmInfo::addParam(Algorithm& algo, const char* parameter, void (Algorithm::*setter)(int), const string& help) { - addParam_(algo, parameter, ParamType::type, &value, readOnly, + addParam_(algo, parameter, ParamType::type, &value, readOnly, (Algorithm::Getter)getter, (Algorithm::Setter)setter, help); } diff --git a/modules/features2d/perf/perf_fast.cpp b/modules/features2d/perf/perf_fast.cpp index 52411dd1a1..6ea04334fd 100644 --- a/modules/features2d/perf/perf_fast.cpp +++ b/modules/features2d/perf/perf_fast.cpp @@ -31,6 +31,7 @@ PERF_TEST_P(fast, detect, testing::Combine( declare.in(frame); Ptr fd = Algorithm::create("Feature2D.FASTX"); + ASSERT_FALSE( fd == 0 ); fd->set("threshold", 20); fd->set("nonmaxSuppression", true); fd->set("type", type); diff --git a/modules/highgui/perf/perf_input.cpp b/modules/highgui/perf/perf_input.cpp index 06e3c2c928..a2ce1fe910 100644 --- a/modules/highgui/perf/perf_input.cpp +++ b/modules/highgui/perf/perf_input.cpp @@ -6,6 +6,8 @@ using namespace perf; using std::tr1::make_tuple; using std::tr1::get; +#ifndef ANDROID + typedef perf::TestBaseWithParam VideoCapture_Reading; PERF_TEST_P(VideoCapture_Reading, ReadFile, testing::Values( "highgui/video/big_buck_bunny.avi", @@ -23,3 +25,5 @@ PERF_TEST_P(VideoCapture_Reading, ReadFile, testing::Values( "highgui/video/big_ bool dummy = cap.isOpened(); SANITY_CHECK(dummy); } + +#endif //ANDROID \ No newline at end of file diff --git a/modules/highgui/perf/perf_output.cpp b/modules/highgui/perf/perf_output.cpp index 851a2a6a0f..95f993803f 100644 --- a/modules/highgui/perf/perf_output.cpp +++ b/modules/highgui/perf/perf_output.cpp @@ -6,6 +6,8 @@ using namespace perf; using std::tr1::make_tuple; using std::tr1::get; +#ifndef ANDROID + typedef std::tr1::tuple VideoWriter_Writing_t; typedef perf::TestBaseWithParam VideoWriter_Writing; @@ -28,3 +30,5 @@ PERF_TEST_P(VideoWriter_Writing, WriteFrame, bool dummy = writer.isOpened(); SANITY_CHECK(dummy); } + +#endif //ANDROID \ No newline at end of file diff --git a/modules/imgproc/perf/perf_warp.cpp b/modules/imgproc/perf/perf_warp.cpp index 18e441f6dc..3f8f273a0e 100644 --- a/modules/imgproc/perf/perf_warp.cpp +++ b/modules/imgproc/perf/perf_warp.cpp @@ -139,7 +139,7 @@ PERF_TEST_P( TestWarpPerspectiveNear_t, WarpPerspectiveNear, warpPerspective( src, dst, warpMat, size, interType, borderMode, Scalar::all(150) ); } - SANITY_CHECK(dst); + SANITY_CHECK(dst, 1); } PERF_TEST_P( TestRemap, remap,