1
0
mirror of https://github.com/opencv/opencv.git synced 2026-07-30 15:53:03 +04:00

Merge pull request #10979 from dkurt:unite_dnn_samples

This commit is contained in:
Alexander Alekhin
2018-03-14 14:33:49 +00:00
45 changed files with 2300 additions and 10809 deletions
+9 -1
View File
@@ -3159,7 +3159,7 @@ protected:
struct Param {
enum { INT=0, BOOLEAN=1, REAL=2, STRING=3, MAT=4, MAT_VECTOR=5, ALGORITHM=6, FLOAT=7,
UNSIGNED_INT=8, UINT64=9, UCHAR=11 };
UNSIGNED_INT=8, UINT64=9, UCHAR=11, SCALAR=12 };
};
@@ -3252,6 +3252,14 @@ template<> struct ParamType<uchar>
enum { type = Param::UCHAR };
};
template<> struct ParamType<Scalar>
{
typedef const Scalar& const_param_type;
typedef Scalar member_type;
enum { type = Param::SCALAR };
};
//! @} core_basic
} //namespace cv
+6
View File
@@ -104,6 +104,12 @@ static void from_str(const String& str, int type, void* dst)
ss >> *(double*)dst;
else if( type == Param::STRING )
*(String*)dst = str;
else if( type == Param::SCALAR)
{
Scalar& scalar = *(Scalar*)dst;
for (int i = 0; i < 4 && !ss.eof(); ++i)
ss >> scalar[i];
}
else
CV_Error(Error::StsBadArg, "unknown/unsupported parameter type");
+22
View File
@@ -261,4 +261,26 @@ TEST(AutoBuffer, allocate_test)
EXPECT_EQ(6u, abuf.size());
}
TEST(CommandLineParser, testScalar)
{
static const char * const keys3 =
"{ s0 | 3 4 5 | default scalar }"
"{ s1 | | single value scalar }"
"{ s2 | | two values scalar (default with zeros) }"
"{ s3 | | three values scalar }"
"{ s4 | | four values scalar }"
"{ s5 | | five values scalar }";
const char* argv[] = {"<bin>", "--s1=1.1", "--s3=1.1 2.2 3",
"--s4=-4.2 1 0 3", "--s5=5 -4 3 2 1"};
const int argc = 5;
CommandLineParser parser(argc, argv, keys3);
EXPECT_EQ(parser.get<Scalar>("s0"), Scalar(3, 4, 5));
EXPECT_EQ(parser.get<Scalar>("s1"), Scalar(1.1));
EXPECT_EQ(parser.get<Scalar>("s2"), Scalar(0));
EXPECT_EQ(parser.get<Scalar>("s3"), Scalar(1.1, 2.2, 3));
EXPECT_EQ(parser.get<Scalar>("s4"), Scalar(-4.2, 1, 0, 3));
EXPECT_EQ(parser.get<Scalar>("s5"), Scalar(5, -4, 3, 2));
}
}} // namespace