|
|
|
@ -49,7 +49,7 @@ |
|
|
|
|
using namespace std; |
|
|
|
|
using namespace cv; |
|
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
// Merge
|
|
|
|
|
|
|
|
|
|
struct CV_MergeTest : public CvTest |
|
|
|
@ -63,8 +63,12 @@ struct CV_MergeTest : public CvTest |
|
|
|
|
|
|
|
|
|
void CV_MergeTest::can_merge(size_t rows, size_t cols) |
|
|
|
|
{ |
|
|
|
|
bool double_ok = gpu::hasGreaterOrEqualVersion(1, 3) &&
|
|
|
|
|
gpu::hasNativeDoubleSupport(gpu::getDevice()); |
|
|
|
|
size_t depth_end = double_ok ? CV_64F : CV_32F; |
|
|
|
|
|
|
|
|
|
for (size_t num_channels = 1; num_channels <= 4; ++num_channels) |
|
|
|
|
for (size_t depth = CV_8U; depth <= CV_64F; ++depth) |
|
|
|
|
for (size_t depth = CV_8U; depth <= depth_end; ++depth) |
|
|
|
|
{ |
|
|
|
|
vector<Mat> src; |
|
|
|
|
for (size_t i = 0; i < num_channels; ++i) |
|
|
|
@ -101,8 +105,12 @@ void CV_MergeTest::can_merge(size_t rows, size_t cols) |
|
|
|
|
|
|
|
|
|
void CV_MergeTest::can_merge_submatrixes(size_t rows, size_t cols) |
|
|
|
|
{ |
|
|
|
|
bool double_ok = gpu::hasGreaterOrEqualVersion(1, 3) &&
|
|
|
|
|
gpu::hasNativeDoubleSupport(gpu::getDevice()); |
|
|
|
|
size_t depth_end = double_ok ? CV_64F : CV_32F; |
|
|
|
|
|
|
|
|
|
for (size_t num_channels = 1; num_channels <= 4; ++num_channels) |
|
|
|
|
for (size_t depth = CV_8U; depth <= CV_64F; ++depth) |
|
|
|
|
for (size_t depth = CV_8U; depth <= depth_end; ++depth) |
|
|
|
|
{ |
|
|
|
|
vector<Mat> src; |
|
|
|
|
for (size_t i = 0; i < num_channels; ++i)
|
|
|
|
@ -158,7 +166,7 @@ void CV_MergeTest::run(int) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
// Split
|
|
|
|
|
|
|
|
|
|
struct CV_SplitTest : public CvTest |
|
|
|
@ -171,8 +179,12 @@ struct CV_SplitTest : public CvTest |
|
|
|
|
|
|
|
|
|
void CV_SplitTest::can_split(size_t rows, size_t cols) |
|
|
|
|
{ |
|
|
|
|
bool double_ok = gpu::hasGreaterOrEqualVersion(1, 3) &&
|
|
|
|
|
gpu::hasNativeDoubleSupport(gpu::getDevice()); |
|
|
|
|
size_t depth_end = double_ok ? CV_64F : CV_32F; |
|
|
|
|
|
|
|
|
|
for (size_t num_channels = 1; num_channels <= 4; ++num_channels) |
|
|
|
|
for (size_t depth = CV_8U; depth <= CV_64F; ++depth) |
|
|
|
|
for (size_t depth = CV_8U; depth <= depth_end; ++depth) |
|
|
|
|
{ |
|
|
|
|
Mat src(rows, cols, CV_MAKETYPE(depth, num_channels), Scalar(1.0, 2.0, 3.0, 4.0));
|
|
|
|
|
vector<Mat> dst; |
|
|
|
@ -209,8 +221,12 @@ void CV_SplitTest::can_split(size_t rows, size_t cols) |
|
|
|
|
|
|
|
|
|
void CV_SplitTest::can_split_submatrix(size_t rows, size_t cols) |
|
|
|
|
{ |
|
|
|
|
bool double_ok = gpu::hasGreaterOrEqualVersion(1, 3) &&
|
|
|
|
|
gpu::hasNativeDoubleSupport(gpu::getDevice()); |
|
|
|
|
size_t depth_end = double_ok ? CV_64F : CV_32F; |
|
|
|
|
|
|
|
|
|
for (size_t num_channels = 1; num_channels <= 4; ++num_channels) |
|
|
|
|
for (size_t depth = CV_8U; depth <= CV_64F; ++depth) |
|
|
|
|
for (size_t depth = CV_8U; depth <= depth_end; ++depth) |
|
|
|
|
{ |
|
|
|
|
Mat src_data(rows * 2, cols * 2, CV_MAKETYPE(depth, num_channels), Scalar(1.0, 2.0, 3.0, 4.0));
|
|
|
|
|
Mat src(src_data(Range(rows / 2, rows / 2 + rows), Range(cols / 2, cols / 2 + cols))); |
|
|
|
@ -264,8 +280,8 @@ void CV_SplitTest::run(int) |
|
|
|
|
}
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
// Split and merge
|
|
|
|
|
|
|
|
|
|
struct CV_SplitMergeTest : public CvTest |
|
|
|
@ -276,8 +292,12 @@ struct CV_SplitMergeTest : public CvTest |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
void CV_SplitMergeTest::can_split_merge(size_t rows, size_t cols) { |
|
|
|
|
bool double_ok = gpu::hasGreaterOrEqualVersion(1, 3) &&
|
|
|
|
|
gpu::hasNativeDoubleSupport(gpu::getDevice()); |
|
|
|
|
size_t depth_end = double_ok ? CV_64F : CV_32F; |
|
|
|
|
|
|
|
|
|
for (size_t num_channels = 1; num_channels <= 4; ++num_channels) |
|
|
|
|
for (size_t depth = CV_8U; depth <= CV_64F; ++depth) |
|
|
|
|
for (size_t depth = CV_8U; depth <= depth_end; ++depth) |
|
|
|
|
{ |
|
|
|
|
Mat orig(rows, cols, CV_MAKETYPE(depth, num_channels), Scalar(1.0, 2.0, 3.0, 4.0));
|
|
|
|
|
gpu::GpuMat dev_orig(orig); |
|
|
|
@ -318,12 +338,12 @@ void CV_SplitMergeTest::run(int) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
/////////////////// tests registration /////////////////////////////////////
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
// If we comment some tests, we may foget/miss to uncomment it after.
|
|
|
|
|
// Placing all test definitions in one place
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
/////////////////// tests registration /////////////////////////////////////
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
|
|
// If we comment some tests, we may foget/miss to uncomment it after.
|
|
|
|
|
// Placing all test definitions in one place
|
|
|
|
|
// makes us know about what tests are commented.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|