|
|
|
@ -2526,6 +2526,54 @@ INSTANTIATE_TEST_CASE_P(GPU_Arithm, AddWeighted, testing::Combine( |
|
|
|
|
ALL_DEPTH, |
|
|
|
|
WHOLE_SUBMAT)); |
|
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
// Threshold
|
|
|
|
|
|
|
|
|
|
CV_ENUM(ThreshOp, cv::THRESH_BINARY, cv::THRESH_BINARY_INV, cv::THRESH_TRUNC, cv::THRESH_TOZERO, cv::THRESH_TOZERO_INV) |
|
|
|
|
#define ALL_THRESH_OPS testing::Values(ThreshOp(cv::THRESH_BINARY), ThreshOp(cv::THRESH_BINARY_INV), ThreshOp(cv::THRESH_TRUNC), ThreshOp(cv::THRESH_TOZERO), ThreshOp(cv::THRESH_TOZERO_INV)) |
|
|
|
|
|
|
|
|
|
PARAM_TEST_CASE(Threshold, cv::gpu::DeviceInfo, cv::Size, MatType, ThreshOp, UseRoi) |
|
|
|
|
{ |
|
|
|
|
cv::gpu::DeviceInfo devInfo; |
|
|
|
|
cv::Size size; |
|
|
|
|
int type; |
|
|
|
|
int threshOp; |
|
|
|
|
bool useRoi; |
|
|
|
|
|
|
|
|
|
virtual void SetUp() |
|
|
|
|
{ |
|
|
|
|
devInfo = GET_PARAM(0); |
|
|
|
|
size = GET_PARAM(1); |
|
|
|
|
type = GET_PARAM(2); |
|
|
|
|
threshOp = GET_PARAM(3); |
|
|
|
|
useRoi = GET_PARAM(4); |
|
|
|
|
|
|
|
|
|
cv::gpu::setDevice(devInfo.deviceID()); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
GPU_TEST_P(Threshold, Accuracy) |
|
|
|
|
{ |
|
|
|
|
cv::Mat src = randomMat(size, type); |
|
|
|
|
double maxVal = randomDouble(20.0, 127.0); |
|
|
|
|
double thresh = randomDouble(0.0, maxVal); |
|
|
|
|
|
|
|
|
|
cv::gpu::GpuMat dst = createMat(src.size(), src.type(), useRoi); |
|
|
|
|
cv::gpu::threshold(loadMat(src, useRoi), dst, thresh, maxVal, threshOp); |
|
|
|
|
|
|
|
|
|
cv::Mat dst_gold; |
|
|
|
|
cv::threshold(src, dst_gold, thresh, maxVal, threshOp); |
|
|
|
|
|
|
|
|
|
EXPECT_MAT_NEAR(dst_gold, dst, 0.0); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
INSTANTIATE_TEST_CASE_P(GPU_Arithm, Threshold, testing::Combine( |
|
|
|
|
ALL_DEVICES, |
|
|
|
|
DIFFERENT_SIZES, |
|
|
|
|
testing::Values(MatType(CV_8UC1), MatType(CV_16SC1), MatType(CV_32FC1)), |
|
|
|
|
ALL_THRESH_OPS, |
|
|
|
|
WHOLE_SUBMAT)); |
|
|
|
|
|
|
|
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
// Magnitude
|
|
|
|
|
|
|
|
|
@ -2744,52 +2792,4 @@ INSTANTIATE_TEST_CASE_P(GPU_Arithm, PolarToCart, testing::Combine( |
|
|
|
|
testing::Values(AngleInDegrees(false), AngleInDegrees(true)), |
|
|
|
|
WHOLE_SUBMAT)); |
|
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
|
// Threshold
|
|
|
|
|
|
|
|
|
|
CV_ENUM(ThreshOp, cv::THRESH_BINARY, cv::THRESH_BINARY_INV, cv::THRESH_TRUNC, cv::THRESH_TOZERO, cv::THRESH_TOZERO_INV) |
|
|
|
|
#define ALL_THRESH_OPS testing::Values(ThreshOp(cv::THRESH_BINARY), ThreshOp(cv::THRESH_BINARY_INV), ThreshOp(cv::THRESH_TRUNC), ThreshOp(cv::THRESH_TOZERO), ThreshOp(cv::THRESH_TOZERO_INV)) |
|
|
|
|
|
|
|
|
|
PARAM_TEST_CASE(Threshold, cv::gpu::DeviceInfo, cv::Size, MatType, ThreshOp, UseRoi) |
|
|
|
|
{ |
|
|
|
|
cv::gpu::DeviceInfo devInfo; |
|
|
|
|
cv::Size size; |
|
|
|
|
int type; |
|
|
|
|
int threshOp; |
|
|
|
|
bool useRoi; |
|
|
|
|
|
|
|
|
|
virtual void SetUp() |
|
|
|
|
{ |
|
|
|
|
devInfo = GET_PARAM(0); |
|
|
|
|
size = GET_PARAM(1); |
|
|
|
|
type = GET_PARAM(2); |
|
|
|
|
threshOp = GET_PARAM(3); |
|
|
|
|
useRoi = GET_PARAM(4); |
|
|
|
|
|
|
|
|
|
cv::gpu::setDevice(devInfo.deviceID()); |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
GPU_TEST_P(Threshold, Accuracy) |
|
|
|
|
{ |
|
|
|
|
cv::Mat src = randomMat(size, type); |
|
|
|
|
double maxVal = randomDouble(20.0, 127.0); |
|
|
|
|
double thresh = randomDouble(0.0, maxVal); |
|
|
|
|
|
|
|
|
|
cv::gpu::GpuMat dst = createMat(src.size(), src.type(), useRoi); |
|
|
|
|
cv::gpu::threshold(loadMat(src, useRoi), dst, thresh, maxVal, threshOp); |
|
|
|
|
|
|
|
|
|
cv::Mat dst_gold; |
|
|
|
|
cv::threshold(src, dst_gold, thresh, maxVal, threshOp); |
|
|
|
|
|
|
|
|
|
EXPECT_MAT_NEAR(dst_gold, dst, 0.0); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
INSTANTIATE_TEST_CASE_P(GPU_Arithm, Threshold, testing::Combine( |
|
|
|
|
ALL_DEVICES, |
|
|
|
|
DIFFERENT_SIZES, |
|
|
|
|
testing::Values(MatType(CV_8UC1), MatType(CV_16SC1), MatType(CV_32FC1)), |
|
|
|
|
ALL_THRESH_OPS, |
|
|
|
|
WHOLE_SUBMAT)); |
|
|
|
|
|
|
|
|
|
#endif // HAVE_CUDA
|
|
|
|
|