mirror of
https://github.com/opencv/opencv.git
synced 2025-06-09 02:23:23 +08:00
Added performance test for StereoBM algorithm
This commit is contained in:
parent
ca7640e10f
commit
bf8b5ffeb1
@ -41,20 +41,18 @@ namespace opencv_test
|
|||||||
using namespace perf;
|
using namespace perf;
|
||||||
using namespace testing;
|
using namespace testing;
|
||||||
|
|
||||||
static void MakeArtificialExample(RNG rng, Mat& dst_left_view, Mat& dst_view);
|
static void MakeArtificialExample(Mat& dst_left_view, Mat& dst_view);
|
||||||
|
|
||||||
CV_ENUM(SGBMModes, StereoSGBM::MODE_SGBM, StereoSGBM::MODE_SGBM_3WAY, StereoSGBM::MODE_HH4);
|
CV_ENUM(SGBMModes, StereoSGBM::MODE_SGBM, StereoSGBM::MODE_SGBM_3WAY, StereoSGBM::MODE_HH4);
|
||||||
typedef tuple<Size, int, SGBMModes> SGBMParams;
|
typedef tuple<Size, int, SGBMModes> SGBMParams;
|
||||||
typedef TestBaseWithParam<SGBMParams> TestStereoCorresp;
|
typedef TestBaseWithParam<SGBMParams> TestStereoCorrespSGBM;
|
||||||
|
|
||||||
#ifndef _DEBUG
|
#ifndef _DEBUG
|
||||||
PERF_TEST_P( TestStereoCorresp, SGBM, Combine(Values(Size(1280,720),Size(640,480)), Values(256,128), SGBMModes::all()) )
|
PERF_TEST_P( TestStereoCorrespSGBM, SGBM, Combine(Values(Size(1280,720),Size(640,480)), Values(256,128), SGBMModes::all()) )
|
||||||
#else
|
#else
|
||||||
PERF_TEST_P( TestStereoCorresp, DISABLED_TooLongInDebug_SGBM, Combine(Values(Size(1280,720),Size(640,480)), Values(256,128), SGBMModes::all()) )
|
PERF_TEST_P( TestStereoCorrespSGBM, DISABLED_TooLongInDebug_SGBM, Combine(Values(Size(1280,720),Size(640,480)), Values(256,128), SGBMModes::all()) )
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
RNG rng(0);
|
|
||||||
|
|
||||||
SGBMParams params = GetParam();
|
SGBMParams params = GetParam();
|
||||||
|
|
||||||
Size sz = get<0>(params);
|
Size sz = get<0>(params);
|
||||||
@ -65,7 +63,7 @@ PERF_TEST_P( TestStereoCorresp, DISABLED_TooLongInDebug_SGBM, Combine(Values(Siz
|
|||||||
Mat src_right(sz, CV_8UC3);
|
Mat src_right(sz, CV_8UC3);
|
||||||
Mat dst(sz, CV_16S);
|
Mat dst(sz, CV_16S);
|
||||||
|
|
||||||
MakeArtificialExample(rng,src_left,src_right);
|
MakeArtificialExample(src_left,src_right);
|
||||||
|
|
||||||
int wsize = 3;
|
int wsize = 3;
|
||||||
int P1 = 8*src_left.channels()*wsize*wsize;
|
int P1 = 8*src_left.channels()*wsize*wsize;
|
||||||
@ -78,8 +76,34 @@ PERF_TEST_P( TestStereoCorresp, DISABLED_TooLongInDebug_SGBM, Combine(Values(Siz
|
|||||||
SANITY_CHECK(dst, .01, ERROR_RELATIVE);
|
SANITY_CHECK(dst, .01, ERROR_RELATIVE);
|
||||||
}
|
}
|
||||||
|
|
||||||
void MakeArtificialExample(RNG rng, Mat& dst_left_view, Mat& dst_right_view)
|
typedef tuple<Size, int> BMParams;
|
||||||
|
typedef TestBaseWithParam<BMParams> TestStereoCorrespBM;
|
||||||
|
|
||||||
|
PERF_TEST_P(TestStereoCorrespBM, BM, Combine(Values(Size(1280, 720), Size(640, 480)), Values(256, 128)))
|
||||||
{
|
{
|
||||||
|
BMParams params = GetParam();
|
||||||
|
Size sz = get<0>(params);
|
||||||
|
int num_disparities = get<1>(params);
|
||||||
|
|
||||||
|
Mat src_left(sz, CV_8UC1);
|
||||||
|
Mat src_right(sz, CV_8UC1);
|
||||||
|
Mat dst(sz, CV_16S);
|
||||||
|
|
||||||
|
MakeArtificialExample(src_left, src_right);
|
||||||
|
|
||||||
|
int wsize = 21;
|
||||||
|
TEST_CYCLE()
|
||||||
|
{
|
||||||
|
Ptr<StereoBM> bm = StereoBM::create(num_disparities, wsize);
|
||||||
|
bm->compute(src_left, src_right, dst);
|
||||||
|
}
|
||||||
|
|
||||||
|
SANITY_CHECK(dst, .01, ERROR_RELATIVE);
|
||||||
|
}
|
||||||
|
|
||||||
|
void MakeArtificialExample(Mat& dst_left_view, Mat& dst_right_view)
|
||||||
|
{
|
||||||
|
RNG rng(0);
|
||||||
int w = dst_left_view.cols;
|
int w = dst_left_view.cols;
|
||||||
int h = dst_left_view.rows;
|
int h = dst_left_view.rows;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user