using namespace perf;
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);
typedef tuple<Size, int, SGBMModes> SGBMParams;
-typedef TestBaseWithParam<SGBMParams> TestStereoCorresp;
+typedef TestBaseWithParam<SGBMParams> TestStereoCorrespSGBM;
#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
-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
{
- RNG rng(0);
-
SGBMParams params = GetParam();
Size sz = get<0>(params);
Mat src_right(sz, CV_8UC3);
Mat dst(sz, CV_16S);
- MakeArtificialExample(rng,src_left,src_right);
+ MakeArtificialExample(src_left,src_right);
int wsize = 3;
int P1 = 8*src_left.channels()*wsize*wsize;
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 h = dst_left_view.rows;