TEST_P(SetTo, Masked) { cv::Scalar val = randomScalar(0.0, 255.0); cv::Mat mat_gold = randomMat(size, type); cv::Mat mask = randomMat(size, CV_8UC1, 0.0, 2.0); if (CV_MAT_DEPTH(type) == CV_64F && !supportFeature(devInfo, cv::gpu::NATIVE_DOUBLE)) { try { cv::gpu::GpuMat mat = createMat(size, type, useRoi); mat.setTo(val, loadMat(mask)); } catch (const cv::Exception& e) { ASSERT_EQ(CV_StsUnsupportedFormat, e.code); } } else { cv::gpu::GpuMat mat = loadMat(mat_gold, useRoi); mat.setTo(val, loadMat(mask, useRoi)); mat_gold.setTo(val, mask); EXPECT_MAT_NEAR(mat_gold, mat, 0.0); } }
TEST_P(ReprojectImageTo3D, Accuracy) { cv::Mat disp = randomMat(size, depth, 5.0, 30.0); cv::Mat Q = randomMat(cv::Size(4, 4), CV_32FC1, 0.1, 1.0); cv::gpu::GpuMat dst; cv::gpu::reprojectImageTo3D(loadMat(disp, useRoi), dst, Q, 3); cv::Mat dst_gold; cv::reprojectImageTo3D(disp, dst_gold, Q, false); EXPECT_MAT_NEAR(dst_gold, dst, 1e-5); }
virtual void generateTestData() { Size size = randomSize(1, MAX_VALUE); src = randomMat(size, CV_32FC1, -500, 500); K = Mat::eye(3, 3, CV_32FC1); R = Mat::eye(3, 3, CV_32FC1); }
TEST(DomainTransformTest, ChessBoard_NC_accuracy) { RNG rng(0); double MAX_DIF = 1; Size sz = szVGA; double ss = 80; double sc = 60; Mat srcb = randomMat(rng, sz, CV_8UC4, 0, 255, true); Mat srcf = randomMat(rng, sz, CV_32FC4, 0, 255, true); Mat chessb = getChessMat1px<Vec3b>(sz); Mat dstb, dstf; dtFilter(chessb, srcb.clone(), dstb, ss, sc, DTF_NC); dtFilter(chessb, srcf.clone(), dstf, ss, sc, DTF_NC); EXPECT_LE(cv::norm(srcb, dstb, NORM_INF), MAX_DIF); EXPECT_LE(cv::norm(srcf, dstf, NORM_INF), MAX_DIF); }
TEST_P(Integral, Accuracy) { cv::Mat src = randomMat(size, CV_8UC1); cv::gpu::GpuMat dst = createMat(cv::Size(src.cols + 1, src.rows + 1), CV_32SC1, useRoi); cv::gpu::integral(loadMat(src, useRoi), dst); cv::Mat dst_gold; cv::integral(src, dst_gold, CV_32S); EXPECT_MAT_NEAR(dst_gold, dst, 0.0); }
PARAM_TEST_CASE(CvtColor_Gray2RGB, cv::Size, MatDepth, int) { cv::Size size; int code; int depth; cv::Mat img; virtual void SetUp() { size = GET_PARAM(0); depth = GET_PARAM(1); code = GET_PARAM(2); img = randomMat(size, CV_MAKETYPE(depth, 1), 0.0, depth == CV_32F ? 1.0 : 255.0); }
void generateTestData() { Size size = randomSize(1, MAX_VALUE); src = randomMat(size, CV_32FC1, -500, 500); src.copyTo(usrc); K = Mat::eye(3, 3, CV_32FC1); float angle = (float)(30.0 * CV_PI / 180.0); float rotationMatrix[9] = { (float)cos(angle), (float)sin(angle), 0, (float)-sin(angle), (float)cos(angle), 0, 0, 0, 1 }; Mat(3, 3, CV_32FC1, rotationMatrix).copyTo(R); }
void randomSubMat(Mat& whole, Mat& subMat, const Size& roiSize, const Border& border, int type, double minVal, double maxVal) { Size wholeSize = Size(roiSize.width + border.lef + border.rig, roiSize.height + border.top + border.bot); whole = randomMat(wholeSize, type, minVal, maxVal, false); subMat = whole(Rect(border.lef, border.top, roiSize.width, roiSize.height)); }
Mat randomMat(Size size, int type, double minVal, double maxVal) { return randomMat(TS::ptr()->get_rng(), size, type, minVal, maxVal, false); }