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:
@@ -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
|
||||
|
||||
@@ -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");
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user