mirror of
https://github.com/opencv/opencv.git
synced 2025-01-18 14:13:15 +08:00
simplify TVL1 accuracy test to reduce run time
This commit is contained in:
parent
71c391cd8d
commit
c4b2058d23
@ -325,15 +325,20 @@ INSTANTIATE_TEST_CASE_P(CUDA_OptFlow, FarnebackOpticalFlow, testing::Combine(
|
||||
//////////////////////////////////////////////////////
|
||||
// OpticalFlowDual_TVL1
|
||||
|
||||
PARAM_TEST_CASE(OpticalFlowDual_TVL1, cv::cuda::DeviceInfo, UseRoi)
|
||||
namespace
|
||||
{
|
||||
IMPLEMENT_PARAM_CLASS(Gamma, double)
|
||||
}
|
||||
|
||||
PARAM_TEST_CASE(OpticalFlowDual_TVL1, cv::cuda::DeviceInfo, Gamma)
|
||||
{
|
||||
cv::cuda::DeviceInfo devInfo;
|
||||
bool useRoi;
|
||||
double gamma;
|
||||
|
||||
virtual void SetUp()
|
||||
{
|
||||
devInfo = GET_PARAM(0);
|
||||
useRoi = GET_PARAM(1);
|
||||
gamma = GET_PARAM(1);
|
||||
|
||||
cv::cuda::setDevice(devInfo.deviceID());
|
||||
}
|
||||
@ -348,30 +353,22 @@ CUDA_TEST_P(OpticalFlowDual_TVL1, Accuracy)
|
||||
ASSERT_FALSE(frame1.empty());
|
||||
|
||||
cv::cuda::OpticalFlowDual_TVL1_CUDA d_alg;
|
||||
cv::cuda::GpuMat d_flowx = createMat(frame0.size(), CV_32FC1, useRoi);
|
||||
cv::cuda::GpuMat d_flowy = createMat(frame0.size(), CV_32FC1, useRoi);
|
||||
d_alg(loadMat(frame0, useRoi), loadMat(frame1, useRoi), d_flowx, d_flowy);
|
||||
d_alg.iterations = 10;
|
||||
d_alg.gamma = gamma;
|
||||
|
||||
cv::cuda::GpuMat d_flowx, d_flowy;
|
||||
d_alg(loadMat(frame0), loadMat(frame1), d_flowx, d_flowy);
|
||||
|
||||
cv::Ptr<cv::DenseOpticalFlow> alg = cv::createOptFlow_DualTVL1();
|
||||
alg->set("medianFiltering", 1);
|
||||
alg->set("innerIterations", 1);
|
||||
alg->set("outerIterations", d_alg.iterations);
|
||||
alg->set("gamma", gamma);
|
||||
|
||||
cv::Mat flow;
|
||||
alg->calc(frame0, frame1, flow);
|
||||
cv::Mat gold[2];
|
||||
cv::split(flow, gold);
|
||||
cv::Mat mx(d_flowx);
|
||||
cv::Mat my(d_flowx);
|
||||
|
||||
EXPECT_MAT_SIMILAR(gold[0], d_flowx, 4e-3);
|
||||
EXPECT_MAT_SIMILAR(gold[1], d_flowy, 4e-3);
|
||||
d_alg.gamma = 1;
|
||||
alg->set("gamma", 1);
|
||||
d_alg(loadMat(frame0, useRoi), loadMat(frame1, useRoi), d_flowx, d_flowy);
|
||||
alg->calc(frame0, frame1, flow);
|
||||
cv::split(flow, gold);
|
||||
mx = cv::Mat(d_flowx);
|
||||
my = cv::Mat(d_flowx);
|
||||
|
||||
EXPECT_MAT_SIMILAR(gold[0], d_flowx, 4e-3);
|
||||
EXPECT_MAT_SIMILAR(gold[1], d_flowy, 4e-3);
|
||||
@ -379,7 +376,7 @@ CUDA_TEST_P(OpticalFlowDual_TVL1, Accuracy)
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(CUDA_OptFlow, OpticalFlowDual_TVL1, testing::Combine(
|
||||
ALL_DEVICES,
|
||||
WHOLE_SUBMAT));
|
||||
testing::Values(Gamma(0.0), Gamma(1.0))));
|
||||
|
||||
//////////////////////////////////////////////////////
|
||||
// FastOpticalFlowBM
|
||||
|
Loading…
Reference in New Issue
Block a user