]> rtime.felk.cvut.cz Git - opencv.git/commitdiff
added stereoSGBM test
authormdim <mdim@73c94f0f-984f-4a5f-82bc-2d8db8d8ee08>
Fri, 5 Mar 2010 17:59:46 +0000 (17:59 +0000)
committermdim <mdim@73c94f0f-984f-4a5f-82bc-2d8db8d8ee08>
Fri, 5 Mar 2010 17:59:46 +0000 (17:59 +0000)
git-svn-id: https://code.ros.org/svn/opencv/trunk@2754 73c94f0f-984f-4a5f-82bc-2d8db8d8ee08

opencv/tests/cv/src/astereomatching.cpp
opencv_extra/testdata/cv/stereomatching/algorithms/stereobm_params.xml
opencv_extra/testdata/cv/stereomatching/algorithms/stereobm_res.xml
opencv_extra/testdata/cv/stereomatching/algorithms/stereogc_params.xml
opencv_extra/testdata/cv/stereomatching/algorithms/stereogc_res.xml
opencv_extra/testdata/cv/stereomatching/algorithms/stereosgbm_params.xml [new file with mode: 0644]
opencv_extra/testdata/cv/stereomatching/algorithms/stereosgbm_res.xml [new file with mode: 0644]
opencv_extra/testdata/cv/stereomatching/datasets/datasets.xml

index d83ae0d1557961483d0011bae484523c1ea2af19..51b2925c6d459f55b61f110a63bb0db52fe1db71 100755 (executable)
@@ -329,32 +329,39 @@ public:
 protected:
     // assumed that left image is a reference image
     virtual void runStereoMatchingAlgorithm( const Mat& leftImg, const Mat& rightImg,
-                   Mat& leftDisp, Mat& rightDisp, FileStorage& paramsFS, const string& datasetName ) = 0;
+                   Mat& leftDisp, Mat& rightDisp, int caseIdx ) = 0;
 
-    int readDatasetsInfo();
+    int readDatasetsParams( FileStorage& fs );
+    virtual int readRunParams( FileStorage& fs );
     void writeErrors( const string& errName, const vector<float>& errors, FileStorage* fs = 0 );
     void readErrors( FileNode& fn, const string& errName, vector<float>& errors );
     int compareErrors( const vector<float>& calcErrors, const vector<float>& validErrors,
                        const vector<float>& eps, const string& errName );
-    int processStereoMatchingResults( FileStorage& fs, int datasetIdx, bool isWrite,
+    int processStereoMatchingResults( FileStorage& fs, int caseIdx, bool isWrite,
                   const Mat& leftImg, const Mat& rightImg,
                   const Mat& trueLeftDisp, const Mat& trueRightDisp,
                   const Mat& leftDisp, const Mat& rightDisp );
     void run( int );
 
-    vector<string> datasetsNames;
-    vector<int> dispScaleFactors;
-    vector<int> dispUnknownVal;
-
     vector<float> rmsEps;
     vector<float> fracEps;
+
+    struct DatasetParams
+    {
+        int dispScaleFactor;
+        int dispUnknVal;
+    };
+    map<string, DatasetParams> datasetsParams;
+
+    vector<string> caseNames;
+    vector<string> caseDatasets;
 };
 
 void CV_StereoMatchingTest::run(int)
 {
     string dataPath = ts->get_data_path();
-    string algoritmName = name;
-    assert( !algoritmName.empty() );
+    string algorithmName = name;
+    assert( !algorithmName.empty() );
     if( dataPath.empty() )
     {
         ts->printf( CvTS::LOG, "dataPath is empty" );
@@ -362,17 +369,24 @@ void CV_StereoMatchingTest::run(int)
         return;
     }
 
-    int code = readDatasetsInfo();
+    FileStorage datasetsFS( dataPath + DATASETS_DIR + DATASETS_FILE, FileStorage::READ );
+    int code = readDatasetsParams( datasetsFS );
     if( code != CvTS::OK )
     {
         ts->set_failed_test_info( code );
         return;
     }
-
-    string fullResultFilename = dataPath + ALGORITHMS_DIR + algoritmName + RESULT_FILE;
-    bool isWrite = true; // write or compare results
-    FileStorage runParamsFS( dataPath + ALGORITHMS_DIR + algoritmName + RUN_PARAMS_FILE, FileStorage::READ );
+    FileStorage runParamsFS( dataPath + ALGORITHMS_DIR + algorithmName + RUN_PARAMS_FILE, FileStorage::READ );
+    code = readRunParams( runParamsFS );
+    if( code != CvTS::OK )
+    {
+        ts->set_failed_test_info( code );
+        return;
+    }
+    
+    string fullResultFilename = dataPath + ALGORITHMS_DIR + algorithmName + RESULT_FILE;
     FileStorage resFS( fullResultFilename, FileStorage::READ );
+    bool isWrite = true; // write or compare results
     if( resFS.isOpened() )
         isWrite = false;
     else
@@ -380,41 +394,42 @@ void CV_StereoMatchingTest::run(int)
         resFS.open( fullResultFilename, FileStorage::WRITE );
         if( !resFS.isOpened() )
         {
-            ts->printf( CvTS::LOG, "file named %s can not be read or written\n", fullResultFilename.c_str() );
+            ts->printf( CvTS::LOG, "file %s can not be read or written\n", fullResultFilename.c_str() );
             ts->set_failed_test_info( CvTS::FAIL_BAD_ARG_CHECK );
             return;
         }
         resFS << "stereo_matching" << "{";
     }
 
-    int progress = 0;
-    for( int dsi = 0; dsi < (int)datasetsNames.size(); dsi++)
+    int progress = 0, caseCount = caseNames.size();
+    for( int ci = 0; ci < caseCount; ci++)
     {
-        progress = update_progress( progress, dsi, (int)datasetsNames.size(), 0 );
-        string datasetFullDirName = dataPath + DATASETS_DIR + datasetsNames[dsi] + "/";
+        progress = update_progress( progress, ci, caseCount, 0 );
+
+        string datasetName = caseDatasets[ci];
+        string datasetFullDirName = dataPath + DATASETS_DIR + datasetName + "/";
         Mat leftImg = imread(datasetFullDirName + LEFT_IMG_NAME);
         Mat rightImg = imread(datasetFullDirName + RIGHT_IMG_NAME);
         Mat trueLeftDisp = imread(datasetFullDirName + TRUE_LEFT_DISP_NAME, 0);
         Mat trueRightDisp = imread(datasetFullDirName + TRUE_RIGHT_DISP_NAME, 0);
 
-        if( leftImg.empty() || rightImg.empty() || trueLeftDisp.empty()/* || trueRightDisp.empty()*/ )
+        if( leftImg.empty() || rightImg.empty() || trueLeftDisp.empty() )
         {
-            ts->printf( CvTS::LOG, "images or left ground-truth disparities of dataset %s can not be read", datasetsNames[dsi].c_str() );
+            ts->printf( CvTS::LOG, "images or left ground-truth disparities of dataset %s can not be read", datasetName.c_str() );
             code = CvTS::FAIL_INVALID_TEST_DATA;
             continue;
         }
-        Mat tmp;
-        int dispScaleFactor = dispScaleFactors[dsi];
-        trueLeftDisp.convertTo( tmp, CV_32FC1, 1.f/dispScaleFactor ); trueLeftDisp = tmp; tmp.release();
+        int dispScaleFactor = datasetsParams[datasetName].dispScaleFactor;
+        Mat tmp; trueLeftDisp.convertTo( tmp, CV_32FC1, 1.f/dispScaleFactor ); trueLeftDisp = tmp; tmp.release();
         if( !trueRightDisp.empty() )
             trueRightDisp.convertTo( tmp, CV_32FC1, 1.f/dispScaleFactor ); trueRightDisp = tmp; tmp.release();
 
         Mat leftDisp, rightDisp;
-        runStereoMatchingAlgorithm( leftImg, rightImg, leftDisp, rightDisp, runParamsFS, datasetsNames[dsi] );
+        runStereoMatchingAlgorithm( leftImg, rightImg, leftDisp, rightDisp, ci );
         leftDisp.convertTo( tmp, CV_32FC1 ); leftDisp = tmp; tmp.release();
         rightDisp.convertTo( tmp, CV_32FC1 ); rightDisp = tmp; tmp.release();
 
-        int tempCode = processStereoMatchingResults( resFS, dsi, isWrite,
+        int tempCode = processStereoMatchingResults( resFS, ci, isWrite,
                    leftImg, rightImg, trueLeftDisp, trueRightDisp, leftDisp, rightDisp);
         code = tempCode==CvTS::OK ? code : tempCode;
     }
@@ -464,7 +479,7 @@ void calcErrors( const Mat& leftImg, const Mat& rightImg,
     badPxlsFractions[5] = badMatchPxlsFraction( calcLeftDisp, trueLeftDisp, depthDiscontMask );
 }
 
-int CV_StereoMatchingTest::processStereoMatchingResults( FileStorage& fs, int datasetIdx, bool isWrite,
+int CV_StereoMatchingTest::processStereoMatchingResults( FileStorage& fs, int caseIdx, bool isWrite,
               const Mat& leftImg, const Mat& rightImg,
               const Mat& trueLeftDisp, const Mat& trueRightDisp,
               const Mat& leftDisp, const Mat& rightDisp )
@@ -477,12 +492,13 @@ int CV_StereoMatchingTest::processStereoMatchingResults( FileStorage& fs, int da
 
     // get masks for unknown ground truth disparity values
     Mat leftUnknMask, rightUnknMask;
-    absdiff( trueLeftDisp, Scalar(dispUnknownVal[datasetIdx]), leftUnknMask );
+    DatasetParams params = datasetsParams[caseDatasets[caseIdx]];
+    absdiff( trueLeftDisp, Scalar(params.dispUnknVal), leftUnknMask );
     leftUnknMask = leftUnknMask < numeric_limits<float>::epsilon();
     assert(leftUnknMask.type() == CV_8UC1);
     if( !trueRightDisp.empty() )
     {
-        absdiff( trueRightDisp, Scalar(dispUnknownVal[datasetIdx]), rightUnknMask );
+        absdiff( trueRightDisp, Scalar(params.dispUnknVal), rightUnknMask );
         rightUnknMask = rightUnknMask < numeric_limits<float>::epsilon();
         assert(leftUnknMask.type() == CV_8UC1);
     }
@@ -492,10 +508,9 @@ int CV_StereoMatchingTest::processStereoMatchingResults( FileStorage& fs, int da
     calcErrors( leftImg, rightImg, trueLeftDisp, trueRightDisp, leftUnknMask, rightUnknMask,
                 leftDisp, rightDisp, rmss, badPxlsFractions );
 
-    const string& datasetName = datasetsNames[datasetIdx];
     if( isWrite )
     {
-        fs << datasetName << "{";
+        fs << caseNames[caseIdx] << "{";
         cvWriteComment( fs.fs, RMS_STR.c_str(), 0 );
         writeErrors( RMS_STR, rmss, &fs );
         cvWriteComment( fs.fs, BAD_PXLS_FRACTION_STR.c_str(), 0 );
@@ -504,13 +519,13 @@ int CV_StereoMatchingTest::processStereoMatchingResults( FileStorage& fs, int da
     }
     else // compare
     {
-        ts->printf( CvTS::LOG, "\nquality on dataset %s\n", datasetName.c_str() );
+        ts->printf( CvTS::LOG, "\nquality of case named %s\n", caseNames[caseIdx].c_str() );
         ts->printf( CvTS::LOG, "%s\n", RMS_STR.c_str() );
         writeErrors( RMS_STR, rmss );
         ts->printf( CvTS::LOG, "%s\n", BAD_PXLS_FRACTION_STR.c_str() );
         writeErrors( BAD_PXLS_FRACTION_STR, badPxlsFractions );
 
-        FileNode fn = fs.getFirstTopLevelNode()[datasetName];
+        FileNode fn = fs.getFirstTopLevelNode()[caseNames[caseIdx]];
         vector<float> validRmss, validBadPxlsFractions;
 
         readErrors( fn, RMS_STR, validRmss );
@@ -523,28 +538,36 @@ int CV_StereoMatchingTest::processStereoMatchingResults( FileStorage& fs, int da
     return code;
 }
 
-int CV_StereoMatchingTest::readDatasetsInfo()
+int CV_StereoMatchingTest::readDatasetsParams( FileStorage& fs )
 {
-    string datasetsFilename = string(ts->get_data_path()) + DATASETS_DIR + DATASETS_FILE;
-
-    FileStorage fs( datasetsFilename, FileStorage::READ );
     if( !fs.isOpened() )
     {
-        ts->printf( CvTS::LOG, "%s can not be read\n", datasetsFilename.c_str() );
+        ts->printf( CvTS::LOG, "datasetsParams can not be read " );
         return CvTS::FAIL_INVALID_TEST_DATA;
     }
-    FileNode fn = fs.getFirstTopLevelNode()["names_scale_unknown"];
+    datasetsParams.clear();
+    FileNode fn = fs.getFirstTopLevelNode();
     assert(fn.isSeq());
-    datasetsNames.clear();
-    dispScaleFactors.clear();
-    dispUnknownVal.clear();
     for( int i = 0; i < (int)fn.size(); i+=3 )
     {
-        string name = fn[i]; datasetsNames.push_back(name);
-        string scale = fn[i+1]; dispScaleFactors.push_back(atoi(scale.c_str()));
-        string unkn = fn[i+2]; dispUnknownVal.push_back(atoi(unkn.c_str()));
+        string name = fn[i];
+        DatasetParams params;
+        string sf = fn[i+1]; params.dispScaleFactor = atoi(sf.c_str());
+        string uv = fn[i+2]; params.dispUnknVal = atoi(uv.c_str());
+        datasetsParams[name] = params;
     }
+    return CvTS::OK;
+}
 
+int CV_StereoMatchingTest::readRunParams( FileStorage& fs )
+{
+    if( !fs.isOpened() )
+    {
+        ts->printf( CvTS::LOG, "runParams can not be read " );
+        return CvTS::FAIL_INVALID_TEST_DATA;
+    }
+    caseNames.clear();;
+    caseDatasets.clear();
     return CvTS::OK;
 }
 
@@ -593,28 +616,44 @@ class CV_StereoBMTest : public CV_StereoMatchingTest
 {
 public:
     CV_StereoBMTest() : CV_StereoMatchingTest( "stereobm" )
-    { fill(rmsEps.begin(), rmsEps.end(), 0.001f); fill(fracEps.begin(), fracEps.end(), 0.00001f); }
+    { fill(rmsEps.begin(), rmsEps.end(), 0.4f); fill(fracEps.begin(), fracEps.end(), 0.02f); }
+
 protected:
-    virtual void runStereoMatchingAlgorithm( const Mat& _leftImg, const Mat& _rightImg,
-                   Mat& leftDisp, Mat& rightDisp, FileStorage& paramsFS, const string& datasetName )
+    struct RunParams
+    {
+        int ndisp;
+        int winSize;
+    };
+    vector<RunParams> caseRunParams;
+
+    virtual int readRunParams( FileStorage& fs )
     {
-        int ndisp = 16;
-        int winSize = 21;
-        assert( !datasetName.empty() );
-        if( paramsFS.isOpened() )
+        int code = CV_StereoMatchingTest::readRunParams( fs );
+        FileNode fn = fs.getFirstTopLevelNode();
+        assert(fn.isSeq());
+        for( int i = 0; i < (int)fn.size(); i+=4 )
         {
-            FileNodeIterator fni = paramsFS.getFirstTopLevelNode()[datasetName].begin();
-            fni >> ndisp >> winSize;
+            string caseName = fn[i], datasetName = fn[i+1];
+            RunParams params;
+            string ndisp = fn[i+2]; params.ndisp = atoi(ndisp.c_str());
+            string winSize = fn[i+3]; params.winSize = atoi(winSize.c_str());
+            caseNames.push_back( caseName );
+            caseDatasets.push_back( datasetName );
+            caseRunParams.push_back( params );
         }
-        else
-            ts->printf( CvTS::LOG, "%s was tested with default params "
-                        "(ndisp = 16, winSize = 21)\n", datasetName.c_str());
-        assert( ndisp%16 == 0 );
+        return code;
+    }
+
+    virtual void runStereoMatchingAlgorithm( const Mat& _leftImg, const Mat& _rightImg,
+                   Mat& leftDisp, Mat& rightDisp, int caseIdx )
+    {
+        RunParams params = caseRunParams[caseIdx];
+        assert( params.ndisp%16 == 0 );
         assert( _leftImg.type() == CV_8UC3 && _rightImg.type() == CV_8UC3 );
         Mat leftImg; cvtColor( _leftImg, leftImg, CV_BGR2GRAY );
         Mat rightImg; cvtColor( _rightImg, rightImg, CV_BGR2GRAY );
 
-        StereoBM bm( StereoBM::BASIC_PRESET, ndisp, winSize );
+        StereoBM bm( StereoBM::BASIC_PRESET, params.ndisp, params.winSize );
         bm( leftImg, rightImg, leftDisp, CV_32F );
     }
 };
@@ -637,21 +676,35 @@ public:
         fracEps[5] = 0.10f; // borderedDepthDiscont
     }
 protected:
-    virtual void runStereoMatchingAlgorithm( const Mat& _leftImg, const Mat& _rightImg,
-                   Mat& leftDisp, Mat& rightDisp, FileStorage& paramsFS, const string& datasetName )
+    struct RunParams
     {
-        int ndisp = 20;
-        int icount = 2;
-        assert( !datasetName.empty() );
-        if( paramsFS.isOpened() )
+        int ndisp;
+        int iterCount;
+    };
+    vector<RunParams> caseRunParams;
+
+    virtual int readRunParams( FileStorage& fs )
+    {
+        int code = CV_StereoMatchingTest::readRunParams(fs);
+        FileNode fn = fs.getFirstTopLevelNode();
+        assert(fn.isSeq());
+        for( int i = 0; i < (int)fn.size(); i+=4 )
         {
-            FileNodeIterator fni = paramsFS.getFirstTopLevelNode()[datasetName].begin();
-            fni >> ndisp >> icount;
+            string caseName = fn[i], datasetName = fn[i+1];
+            RunParams params;
+            string ndisp = fn[i+2]; params.ndisp = atoi(ndisp.c_str());
+            string iterCount = fn[i+3]; params.iterCount = atoi(iterCount.c_str());
+            caseNames.push_back( caseName );
+            caseDatasets.push_back( datasetName );
+            caseRunParams.push_back( params );
         }
-        else
-            ts->printf( CvTS::LOG, "%s was tested with default params "
-                        "(ndisp = 20, icount = 2)\n", datasetName.c_str());
+        return code;
+    }
 
+    virtual void runStereoMatchingAlgorithm( const Mat& _leftImg, const Mat& _rightImg,
+                   Mat& leftDisp, Mat& rightDisp, int caseIdx )
+    {
+        RunParams params = caseRunParams[caseIdx];
         assert( _leftImg.type() == CV_8UC3 && _rightImg.type() == CV_8UC3 );
         Mat leftImg, rightImg, tmp;
         cvtColor( _leftImg, leftImg, CV_BGR2GRAY );
@@ -661,7 +714,7 @@ protected:
         rightDisp.create( rightImg.size(), CV_16SC1 );
 
         CvMat _limg = leftImg, _rimg = rightImg, _ldisp = leftDisp, _rdisp = rightDisp;
-        CvStereoGCState *state = cvCreateStereoGCState( ndisp, icount );
+        CvStereoGCState *state = cvCreateStereoGCState( params.ndisp, params.iterCount );
         cvFindStereoCorrespondenceGC( &_limg, &_rimg, &_ldisp, &_rdisp, state );
         cvReleaseStereoGCState( &state );
 
@@ -671,3 +724,55 @@ protected:
 };
 
 CV_StereoGCTest stereoGC;
+
+//----------------------------------- StereoSGBM test -----------------------------------------------------
+
+class CV_StereoSGBMTest : public CV_StereoMatchingTest
+{
+public:
+    CV_StereoSGBMTest() : CV_StereoMatchingTest( "stereosgbm" )
+    { fill(rmsEps.begin(), rmsEps.end(), 0.1f); fill(fracEps.begin(), fracEps.end(), 0.01f); }
+
+protected:
+    struct RunParams
+    {
+        int ndisp;
+        int winSize;
+        bool fullDP;
+    };
+    vector<RunParams> caseRunParams;
+
+    virtual int readRunParams( FileStorage& fs )
+    {
+        int code = CV_StereoMatchingTest::readRunParams(fs);
+        FileNode fn = fs.getFirstTopLevelNode();
+        assert(fn.isSeq());
+        for( int i = 0; i < (int)fn.size(); i+=5 )
+        {
+            string caseName = fn[i], datasetName = fn[i+1];
+            RunParams params;
+            string ndisp = fn[i+2]; params.ndisp = atoi(ndisp.c_str());
+            string winSize = fn[i+3]; params.winSize = atoi(winSize.c_str());
+            string fullDP = fn[i+4]; params.fullDP = atoi(fullDP.c_str()) == 0 ? false : true;
+            caseNames.push_back( caseName );
+            caseDatasets.push_back( datasetName );
+            caseRunParams.push_back( params );
+        }
+        return code;
+    }
+
+    virtual void runStereoMatchingAlgorithm( const Mat& leftImg, const Mat& rightImg,
+                   Mat& leftDisp, Mat& rightDisp, int caseIdx )
+    {
+        RunParams params = caseRunParams[caseIdx];
+        assert( params.ndisp%16 == 0 );
+        StereoSGBM sgbm( 0, params.ndisp, params.winSize, 6*params.winSize*params.winSize, 15*params.winSize*params.winSize,
+                         1, 63, 10, 100, 32, params.fullDP );
+        sgbm( leftImg, rightImg, leftDisp );
+        assert( leftDisp.type() == CV_16SC1 );
+        leftDisp/=16;
+    }
+};
+
+CV_StereoSGBMTest stereoSGBM;
+
index 699c4a5c5f277b9da1f1bc2e53ff37caf79431d5..f4ef854c3a6dfb6b95c225fe47ca57d330172cd2 100644 (file)
@@ -1,14 +1,14 @@
 <?xml version="1.0"?>\r
 <opencv_storage>
 <params>
-       <!-- numDisp and winSize -->
-       <barn2> 16 19 </barn2>\r
-       <bull> 16 39 </bull>\r
-       <cones> 64 7 </cones>
-       <poster> 48 9 </poster>\r
-       <sawtooth> 16 13 </sawtooth>\r
-       <teddy> 48 9 </teddy>
-       <tsukuba> 16 7 </tsukuba>\r
-       <venus> 32 43 </venus>
+       <!-- caseName, datasetName, numDisp, winSize -->
+       case_barn2 barn2 "16" "19"\r
+       case_bull bull "16" "39"\r
+       case_cones cones "64" "7"
+       case_poster poster "48" "9"\r
+       case_sawtooth sawtooth "16" "13"\r
+       case_teddy teddy "48" "9"
+       case_tsukuba tsukuba "16" "7"\r
+       case_venus venus "32" "43"
 </params>\r
 </opencv_storage>\r
index f8b8884fea3798f6043a544beb17d73d8d7fc49a..53af7f449ef14078a140945e3da0db53ba387a72 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <opencv_storage>
 <stereo_matching>
-  <barn2>
+  <case_barn2>
     <!-- RMS -->
     <borderedAllRMS>2.9697046279907227e+00</borderedAllRMS>
     <borderedNoOcclRMS>2.6947205066680908e+00</borderedNoOcclRMS>
@@ -15,8 +15,8 @@
     <borderedOcclBadPxlsFraction>9.5660561323165894e-01</borderedOcclBadPxlsFraction>
     <borderedTexturedBadPxlsFraction>7.7511578798294067e-02</borderedTexturedBadPxlsFraction>
     <borderedTexturelessBadPxlsFraction>9.5420710742473602e-02</borderedTexturelessBadPxlsFraction>
-    <borderedDepthDiscontBadPxlsFraction>4.3494275212287903e-01</borderedDepthDiscontBadPxlsFraction></barn2>
-  <bull>
+    <borderedDepthDiscontBadPxlsFraction>4.3494275212287903e-01</borderedDepthDiscontBadPxlsFraction></case_barn2>
+  <case_bull>
     <!-- RMS -->
     <borderedAllRMS>2.6354846954345703e+00</borderedAllRMS>
     <borderedNoOcclRMS>2.4656887054443359e+00</borderedNoOcclRMS>
@@ -30,8 +30,8 @@
     <borderedOcclBadPxlsFraction>9.8041474819183350e-01</borderedOcclBadPxlsFraction>
     <borderedTexturedBadPxlsFraction>8.6934097111225128e-02</borderedTexturedBadPxlsFraction>
     <borderedTexturelessBadPxlsFraction>8.8989585638046265e-02</borderedTexturelessBadPxlsFraction>
-    <borderedDepthDiscontBadPxlsFraction>4.7518435120582581e-01</borderedDepthDiscontBadPxlsFraction></bull>
-  <cones>
+    <borderedDepthDiscontBadPxlsFraction>4.7518435120582581e-01</borderedDepthDiscontBadPxlsFraction></case_bull>
+  <case_cones>
     <!-- RMS -->
     <borderedAllRMS>1.6001134872436523e+01</borderedAllRMS>
     <borderedNoOcclRMS>1.2243816375732422e+01</borderedNoOcclRMS>
@@ -45,8 +45,8 @@
     <borderedOcclBadPxlsFraction>9.8274689912796021e-01</borderedOcclBadPxlsFraction>
     <borderedTexturedBadPxlsFraction>1.7283539474010468e-01</borderedTexturedBadPxlsFraction>
     <borderedTexturelessBadPxlsFraction>1.6594004631042480e-01</borderedTexturelessBadPxlsFraction>
-    <borderedDepthDiscontBadPxlsFraction>3.6046066880226135e-01</borderedDepthDiscontBadPxlsFraction></cones>
-  <poster>
+    <borderedDepthDiscontBadPxlsFraction>3.6046066880226135e-01</borderedDepthDiscontBadPxlsFraction></case_cones>
+  <case_poster>
     <!-- RMS -->
     <borderedAllRMS>4.6672196388244629e+00</borderedAllRMS>
     <borderedNoOcclRMS>4.4640636444091797e+00</borderedNoOcclRMS>
@@ -60,8 +60,8 @@
     <borderedOcclBadPxlsFraction>9.6538126468658447e-01</borderedOcclBadPxlsFraction>
     <borderedTexturedBadPxlsFraction>1.1097636073827744e-01</borderedTexturedBadPxlsFraction>
     <borderedTexturelessBadPxlsFraction>3.2097390294075012e-01</borderedTexturelessBadPxlsFraction>
-    <borderedDepthDiscontBadPxlsFraction>2.4112132191658020e-01</borderedDepthDiscontBadPxlsFraction></poster>
-  <sawtooth>
+    <borderedDepthDiscontBadPxlsFraction>2.4112132191658020e-01</borderedDepthDiscontBadPxlsFraction></case_poster>
+  <case_sawtooth>
     <!-- RMS -->
     <borderedAllRMS>5.9703788757324219e+00</borderedAllRMS>
     <borderedNoOcclRMS>5.8280234336853027e+00</borderedNoOcclRMS>
@@ -75,8 +75,8 @@
     <borderedOcclBadPxlsFraction>9.7759723663330078e-01</borderedOcclBadPxlsFraction>
     <borderedTexturedBadPxlsFraction>1.5190416574478149e-01</borderedTexturedBadPxlsFraction>
     <borderedTexturelessBadPxlsFraction>1.8714335560798645e-01</borderedTexturelessBadPxlsFraction>
-    <borderedDepthDiscontBadPxlsFraction>2.5391057133674622e-01</borderedDepthDiscontBadPxlsFraction></sawtooth>
-  <teddy>
+    <borderedDepthDiscontBadPxlsFraction>2.5391057133674622e-01</borderedDepthDiscontBadPxlsFraction></case_sawtooth>
+  <case_teddy>
     <!-- RMS -->
     <borderedAllRMS>1.3826770782470703e+01</borderedAllRMS>
     <borderedNoOcclRMS>1.1086133956909180e+01</borderedNoOcclRMS>
@@ -90,8 +90,8 @@
     <borderedOcclBadPxlsFraction>9.9260163307189941e-01</borderedOcclBadPxlsFraction>
     <borderedTexturedBadPxlsFraction>1.8982644379138947e-01</borderedTexturedBadPxlsFraction>
     <borderedTexturelessBadPxlsFraction>1.8450041115283966e-01</borderedTexturelessBadPxlsFraction>
-    <borderedDepthDiscontBadPxlsFraction>3.8109087944030762e-01</borderedDepthDiscontBadPxlsFraction></teddy>
-  <tsukuba>
+    <borderedDepthDiscontBadPxlsFraction>3.8109087944030762e-01</borderedDepthDiscontBadPxlsFraction></case_teddy>
+  <case_tsukuba>
     <!-- RMS -->
     <borderedAllRMS>3.0015664100646973e+00</borderedAllRMS>
     <borderedNoOcclRMS>2.8946506977081299e+00</borderedNoOcclRMS>
     <borderedOcclBadPxlsFraction>9.1699779033660889e-01</borderedOcclBadPxlsFraction>
     <borderedTexturedBadPxlsFraction>9.2220596969127655e-02</borderedTexturedBadPxlsFraction>
     <borderedTexturelessBadPxlsFraction>2.3998285830020905e-01</borderedTexturelessBadPxlsFraction>
-    <borderedDepthDiscontBadPxlsFraction>3.1393453478813171e-01</borderedDepthDiscontBadPxlsFraction></tsukuba>
-  <venus>
+    <borderedDepthDiscontBadPxlsFraction>3.1393453478813171e-01</borderedDepthDiscontBadPxlsFraction></case_tsukuba>
+  <case_venus>
     <!-- RMS -->
     <borderedAllRMS>3.3121912479400635e+00</borderedAllRMS>
     <borderedNoOcclRMS>2.9800443649291992e+00</borderedNoOcclRMS>
     <borderedOcclBadPxlsFraction>9.5995551347732544e-01</borderedOcclBadPxlsFraction>
     <borderedTexturedBadPxlsFraction>8.5449673235416412e-02</borderedTexturedBadPxlsFraction>
     <borderedTexturelessBadPxlsFraction>1.3546563684940338e-01</borderedTexturelessBadPxlsFraction>
-    <borderedDepthDiscontBadPxlsFraction>4.1135340929031372e-01</borderedDepthDiscontBadPxlsFraction></venus></stereo_matching>
+    <borderedDepthDiscontBadPxlsFraction>4.1135340929031372e-01</borderedDepthDiscontBadPxlsFraction></case_venus></stereo_matching>
 </opencv_storage>
index ad5438b0bbd880978fda941487c18e736c884e23..ae7077cb4eb9dd0cfbcdcc32cd7eb4c3a23fb9b8 100644 (file)
@@ -1,14 +1,14 @@
 <?xml version="1.0"?>\r
 <opencv_storage>
 <params>
-       <!-- numDisp, iterCount -->
-       <barn2> 32 2 </barn2>\r
-       <bull> 40 2 </bull>
-       <cones> 50 3 </cones>
-       <poster> 51 3 </poster>
-       <sawtooth> 20 3 </sawtooth>
-       <teddy> 70 3 </teddy>
-       <tsukuba> 16 3 </tsukuba>
-       <venus> 25 2 </venus>
+       <!-- caseName, datasetName, numDisp, iterCount -->
+       case_barn2 barn2 "32" "2"\r
+       case_bull bull "40" "2"
+       case_cones cones "50" "3"
+       case_poster poster "51" "3"
+       case_sawtooth sawtooth "20" "3"
+       case_teddy teddy "70" "3"
+       case_tsukuba tsukuba "16" "3"
+       case_venus venus "25" "2"
 </params>\r
 </opencv_storage>\r
index 3d88126f9b65e63d50837889dfbcc955da597b63..62d2f70599d5a1892f36898893a67c4e3a9b794b 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0"?>
 <opencv_storage>
 <stereo_matching>
-  <barn2>
+  <case_barn2>
     <!-- RMS -->
     <borderedAllRMS>8.8603770732879639e-01</borderedAllRMS>
     <borderedNoOcclRMS>6.9244784116744995e-01</borderedNoOcclRMS>
@@ -15,8 +15,8 @@
     <borderedOcclBadPxlsFraction>5.4741239547729492e-01</borderedOcclBadPxlsFraction>
     <borderedTexturedBadPxlsFraction>1.1144985444843769e-02</borderedTexturedBadPxlsFraction>
     <borderedTexturelessBadPxlsFraction>3.2244794070720673e-02</borderedTexturelessBadPxlsFraction>
-    <borderedDepthDiscontBadPxlsFraction>8.4495998919010162e-02</borderedDepthDiscontBadPxlsFraction></barn2>
-  <bull>
+    <borderedDepthDiscontBadPxlsFraction>8.4495998919010162e-02</borderedDepthDiscontBadPxlsFraction></case_barn2>
+  <case_bull>
     <!-- RMS -->
     <borderedAllRMS>3.7193709611892700e-01</borderedAllRMS>
     <borderedNoOcclRMS>3.6503484845161438e-01</borderedNoOcclRMS>
@@ -30,8 +30,8 @@
     <borderedOcclBadPxlsFraction>2.0391705632209778e-01</borderedOcclBadPxlsFraction>
     <borderedTexturedBadPxlsFraction>5.6590605527162552e-03</borderedTexturedBadPxlsFraction>
     <borderedTexturelessBadPxlsFraction>2.0203370600938797e-02</borderedTexturelessBadPxlsFraction>
-    <borderedDepthDiscontBadPxlsFraction>1.3673509657382965e-01</borderedDepthDiscontBadPxlsFraction></bull>
-  <cones>
+    <borderedDepthDiscontBadPxlsFraction>1.3673509657382965e-01</borderedDepthDiscontBadPxlsFraction></case_bull>
+  <case_cones>
     <!-- RMS -->
     <borderedAllRMS>3.7660238742828369e+00</borderedAllRMS>
     <borderedNoOcclRMS>2.2453501224517822e+00</borderedNoOcclRMS>
@@ -45,8 +45,8 @@
     <borderedOcclBadPxlsFraction>7.0024454593658447e-01</borderedOcclBadPxlsFraction>
     <borderedTexturedBadPxlsFraction>1.1467904597520828e-01</borderedTexturedBadPxlsFraction>
     <borderedTexturelessBadPxlsFraction>1.2472582608461380e-01</borderedTexturelessBadPxlsFraction>
-    <borderedDepthDiscontBadPxlsFraction>1.9106541574001312e-01</borderedDepthDiscontBadPxlsFraction></cones>
-  <poster>
+    <borderedDepthDiscontBadPxlsFraction>1.9106541574001312e-01</borderedDepthDiscontBadPxlsFraction></case_cones>
+  <case_poster>
     <!-- RMS -->
     <borderedAllRMS>4.7536170482635498e-01</borderedAllRMS>
     <borderedNoOcclRMS>3.3776870369911194e-01</borderedNoOcclRMS>
@@ -60,8 +60,8 @@
     <borderedOcclBadPxlsFraction>1.1853637546300888e-01</borderedOcclBadPxlsFraction>
     <borderedTexturedBadPxlsFraction>1.7978340620175004e-03</borderedTexturedBadPxlsFraction>
     <borderedTexturelessBadPxlsFraction>5.7604793255450204e-05</borderedTexturelessBadPxlsFraction>
-    <borderedDepthDiscontBadPxlsFraction>8.2927709445357323e-03</borderedDepthDiscontBadPxlsFraction></poster>
-  <sawtooth>
+    <borderedDepthDiscontBadPxlsFraction>8.2927709445357323e-03</borderedDepthDiscontBadPxlsFraction></case_poster>
+  <case_sawtooth>
     <!-- RMS -->
     <borderedAllRMS>1.1130944490432739e+00</borderedAllRMS>
     <borderedNoOcclRMS>8.3637070655822754e-01</borderedNoOcclRMS>
@@ -75,8 +75,8 @@
     <borderedOcclBadPxlsFraction>3.0674543976783752e-01</borderedOcclBadPxlsFraction>
     <borderedTexturedBadPxlsFraction>8.1253368407487869e-03</borderedTexturedBadPxlsFraction>
     <borderedTexturelessBadPxlsFraction>1.0415319353342056e-02</borderedTexturelessBadPxlsFraction>
-    <borderedDepthDiscontBadPxlsFraction>6.5905548632144928e-02</borderedDepthDiscontBadPxlsFraction></sawtooth>
-  <teddy>
+    <borderedDepthDiscontBadPxlsFraction>6.5905548632144928e-02</borderedDepthDiscontBadPxlsFraction></case_sawtooth>
+  <case_teddy>
     <!-- RMS -->
     <borderedAllRMS>2.4008355140686035e+00</borderedAllRMS>
     <borderedNoOcclRMS>1.8177765607833862e+00</borderedNoOcclRMS>
@@ -90,8 +90,8 @@
     <borderedOcclBadPxlsFraction>7.4075204133987427e-01</borderedOcclBadPxlsFraction>
     <borderedTexturedBadPxlsFraction>8.8783964514732361e-02</borderedTexturedBadPxlsFraction>
     <borderedTexturelessBadPxlsFraction>2.5913196802139282e-01</borderedTexturelessBadPxlsFraction>
-    <borderedDepthDiscontBadPxlsFraction>2.3737339675426483e-01</borderedDepthDiscontBadPxlsFraction></teddy>
-  <tsukuba>
+    <borderedDepthDiscontBadPxlsFraction>2.3737339675426483e-01</borderedDepthDiscontBadPxlsFraction></case_teddy>
+  <case_tsukuba>
     <!-- RMS -->
     <borderedAllRMS>9.2417442798614502e-01</borderedAllRMS>
     <borderedNoOcclRMS>7.7376806735992432e-01</borderedNoOcclRMS>
     <borderedOcclBadPxlsFraction>3.6732891201972961e-01</borderedOcclBadPxlsFraction>
     <borderedTexturedBadPxlsFraction>2.0044153556227684e-02</borderedTexturedBadPxlsFraction>
     <borderedTexturelessBadPxlsFraction>2.8173983097076416e-02</borderedTexturelessBadPxlsFraction>
-    <borderedDepthDiscontBadPxlsFraction>8.9960016310214996e-02</borderedDepthDiscontBadPxlsFraction></tsukuba>
-  <venus>
+    <borderedDepthDiscontBadPxlsFraction>8.9960016310214996e-02</borderedDepthDiscontBadPxlsFraction></case_tsukuba>
+  <case_venus>
     <!-- RMS -->
     <borderedAllRMS>7.1949613094329834e-01</borderedAllRMS>
     <borderedNoOcclRMS>6.6295725107192993e-01</borderedNoOcclRMS>
     <borderedOcclBadPxlsFraction>4.4901743531227112e-01</borderedOcclBadPxlsFraction>
     <borderedTexturedBadPxlsFraction>1.2435927987098694e-02</borderedTexturedBadPxlsFraction>
     <borderedTexturelessBadPxlsFraction>5.0676062703132629e-02</borderedTexturelessBadPxlsFraction>
-    <borderedDepthDiscontBadPxlsFraction>1.1578573286533356e-01</borderedDepthDiscontBadPxlsFraction></venus></stereo_matching>
+    <borderedDepthDiscontBadPxlsFraction>1.1578573286533356e-01</borderedDepthDiscontBadPxlsFraction></case_venus></stereo_matching>
 </opencv_storage>
diff --git a/opencv_extra/testdata/cv/stereomatching/algorithms/stereosgbm_params.xml b/opencv_extra/testdata/cv/stereomatching/algorithms/stereosgbm_params.xml
new file mode 100644 (file)
index 0000000..8128171
--- /dev/null
@@ -0,0 +1,22 @@
+<?xml version="1.0"?>\r
+<opencv_storage>
+<params>
+       <!-- caseName, datasetName, numDisp, winSize, fullDP -->
+       case_barn2_0 barn2 "32" "1" "0"\r
+       case_barn2_1 barn2 "32" "1" "1"\r
+       case_bull_0 bull "32" "5" "0"\r
+       case_bull_1 bull "32" "5" "1"\r
+       case_cones_0 cones "64" "5" "0"\r
+       case_cones_1 cones "64" "5" "1"
+       case_poster_0 poster "32" "1" "0"\r
+       case_poster_1 poster "32" "1" "1"\r
+       case_sawtooth_0 sawtooth "32" "1" "0"\r
+       case_sawtooth_1 sawtooth "32" "1" "1"\r
+       case_teddy_0 teddy "48" "1" "0"\r
+       case_teddy_1 teddy "48" "1" "1"
+       case_tsukuba_0 tsukuba "16" "1" "0"\r
+       case_tsukuba_1 tsukuba "16" "1" "0"\r
+       case_venus_0 venus "32" "1" "0"\r
+       case_venus_1 venus "32" "1" "0"
+</params>\r
+</opencv_storage>\r
diff --git a/opencv_extra/testdata/cv/stereomatching/algorithms/stereosgbm_res.xml b/opencv_extra/testdata/cv/stereomatching/algorithms/stereosgbm_res.xml
new file mode 100644 (file)
index 0000000..7ab15ae
--- /dev/null
@@ -0,0 +1,244 @@
+<?xml version="1.0"?>
+<opencv_storage>
+<stereo_matching>
+  <case_barn2_0>
+    <!-- RMS -->
+    <borderedAllRMS>3.6340250968933105e+00</borderedAllRMS>
+    <borderedNoOcclRMS>3.4821333885192871e+00</borderedNoOcclRMS>
+    <borderedOcclRMS>7.9718170166015625e+00</borderedOcclRMS>
+    <borderedTexturedRMS>2.1075375080108643e+00</borderedTexturedRMS>
+    <borderedTexturelessRMS>4.3835029602050781e+00</borderedTexturelessRMS>
+    <borderedDepthDiscontRMS>3.5368020534515381e+00</borderedDepthDiscontRMS>
+    <!-- BadPxlsFraction -->
+    <borderedAllBadPxlsFraction>1.7852847278118134e-01</borderedAllBadPxlsFraction>
+    <borderedNoOcclBadPxlsFraction>1.6128475964069366e-01</borderedNoOcclBadPxlsFraction>
+    <borderedOcclBadPxlsFraction>9.8167788982391357e-01</borderedOcclBadPxlsFraction>
+    <borderedTexturedBadPxlsFraction>6.7847795784473419e-02</borderedTexturedBadPxlsFraction>
+    <borderedTexturelessBadPxlsFraction>2.4750202894210815e-01</borderedTexturelessBadPxlsFraction>
+    <borderedDepthDiscontBadPxlsFraction>2.3828186094760895e-01</borderedDepthDiscontBadPxlsFraction></case_barn2_0>
+  <case_barn2_1>
+    <!-- RMS -->
+    <borderedAllRMS>3.5442306995391846e+00</borderedAllRMS>
+    <borderedNoOcclRMS>3.3751916885375977e+00</borderedNoOcclRMS>
+    <borderedOcclRMS>8.1877794265747070e+00</borderedOcclRMS>
+    <borderedTexturedRMS>2.1069571971893311e+00</borderedTexturedRMS>
+    <borderedTexturelessRMS>4.2198753356933594e+00</borderedTexturelessRMS>
+    <borderedDepthDiscontRMS>3.7755236625671387e+00</borderedDepthDiscontRMS>
+    <!-- BadPxlsFraction -->
+    <borderedAllBadPxlsFraction>1.6724544763565063e-01</borderedAllBadPxlsFraction>
+    <borderedNoOcclBadPxlsFraction>1.4962145686149597e-01</borderedNoOcclBadPxlsFraction>
+    <borderedOcclBadPxlsFraction>9.8810672760009766e-01</borderedOcclBadPxlsFraction>
+    <borderedTexturedBadPxlsFraction>6.8365499377250671e-02</borderedTexturedBadPxlsFraction>
+    <borderedTexturelessBadPxlsFraction>2.2459892928600311e-01</borderedTexturelessBadPxlsFraction>
+    <borderedDepthDiscontBadPxlsFraction>2.7245649695396423e-01</borderedDepthDiscontBadPxlsFraction></case_barn2_1>
+  <case_bull_0>
+    <!-- RMS -->
+    <borderedAllRMS>2.6510539054870605e+00</borderedAllRMS>
+    <borderedNoOcclRMS>2.4391152858734131e+00</borderedNoOcclRMS>
+    <borderedOcclRMS>1.3829360961914062e+01</borderedOcclRMS>
+    <borderedTexturedRMS>2.8044779300689697e+00</borderedTexturedRMS>
+    <borderedTexturelessRMS>2.1012372970581055e+00</borderedTexturelessRMS>
+    <borderedDepthDiscontRMS>3.4373311996459961e+00</borderedDepthDiscontRMS>
+    <!-- BadPxlsFraction -->
+    <borderedAllBadPxlsFraction>8.1465929746627808e-02</borderedAllBadPxlsFraction>
+    <borderedNoOcclBadPxlsFraction>7.6114013791084290e-02</borderedNoOcclBadPxlsFraction>
+    <borderedOcclBadPxlsFraction>9.9539172649383545e-01</borderedOcclBadPxlsFraction>
+    <borderedTexturedBadPxlsFraction>8.2276366651058197e-02</borderedTexturedBadPxlsFraction>
+    <borderedTexturelessBadPxlsFraction>7.1179524064064026e-02</borderedTexturelessBadPxlsFraction>
+    <borderedDepthDiscontBadPxlsFraction>2.8164240717887878e-01</borderedDepthDiscontBadPxlsFraction></case_bull_0>
+  <case_bull_1>
+    <!-- RMS -->
+    <borderedAllRMS>2.5439765453338623e+00</borderedAllRMS>
+    <borderedNoOcclRMS>2.3214499950408936e+00</borderedNoOcclRMS>
+    <borderedOcclRMS>1.3833223342895508e+01</borderedOcclRMS>
+    <borderedTexturedRMS>2.7445819377899170e+00</borderedTexturedRMS>
+    <borderedTexturelessRMS>1.9164147377014160e+00</borderedTexturelessRMS>
+    <borderedDepthDiscontRMS>3.6878821849822998e+00</borderedDepthDiscontRMS>
+    <!-- BadPxlsFraction -->
+    <borderedAllBadPxlsFraction>7.5556866824626923e-02</borderedAllBadPxlsFraction>
+    <borderedNoOcclBadPxlsFraction>7.0143364369869232e-02</borderedNoOcclBadPxlsFraction>
+    <borderedOcclBadPxlsFraction>1.</borderedOcclBadPxlsFraction>
+    <borderedTexturedBadPxlsFraction>8.1168830394744873e-02</borderedTexturedBadPxlsFraction>
+    <borderedTexturelessBadPxlsFraction>6.1314735561609268e-02</borderedTexturelessBadPxlsFraction>
+    <borderedDepthDiscontBadPxlsFraction>2.8403428196907043e-01</borderedDepthDiscontBadPxlsFraction></case_bull_1>
+  <case_cones_0>
+    <!-- RMS -->
+    <borderedAllRMS>1.4948005676269531e+01</borderedAllRMS>
+    <borderedNoOcclRMS>1.0714867591857910e+01</borderedNoOcclRMS>
+    <borderedOcclRMS>3.4735446929931641e+01</borderedOcclRMS>
+    <borderedTexturedRMS>9.6662015914916992e+00</borderedTexturedRMS>
+    <borderedTexturelessRMS>1.3054833412170410e+01</borderedTexturelessRMS>
+    <borderedDepthDiscontRMS>1.3836570739746094e+01</borderedDepthDiscontRMS>
+    <!-- BadPxlsFraction -->
+    <borderedAllBadPxlsFraction>2.3410512506961823e-01</borderedAllBadPxlsFraction>
+    <borderedNoOcclBadPxlsFraction>1.5086595714092255e-01</borderedNoOcclBadPxlsFraction>
+    <borderedOcclBadPxlsFraction>9.8566770553588867e-01</borderedOcclBadPxlsFraction>
+    <borderedTexturedBadPxlsFraction>1.5058843791484833e-01</borderedTexturedBadPxlsFraction>
+    <borderedTexturelessBadPxlsFraction>1.5158818662166595e-01</borderedTexturelessBadPxlsFraction>
+    <borderedDepthDiscontBadPxlsFraction>3.0715781450271606e-01</borderedDepthDiscontBadPxlsFraction></case_cones_0>
+  <case_cones_1>
+    <!-- RMS -->
+    <borderedAllRMS>1.4871568679809570e+01</borderedAllRMS>
+    <borderedNoOcclRMS>1.0673042297363281e+01</borderedNoOcclRMS>
+    <borderedOcclRMS>3.4523502349853516e+01</borderedOcclRMS>
+    <borderedTexturedRMS>9.6144456863403320e+00</borderedTexturedRMS>
+    <borderedTexturelessRMS>1.3030851364135742e+01</borderedTexturelessRMS>
+    <borderedDepthDiscontRMS>1.3599418640136719e+01</borderedDepthDiscontRMS>
+    <!-- BadPxlsFraction -->
+    <borderedAllBadPxlsFraction>2.3518675565719604e-01</borderedAllBadPxlsFraction>
+    <borderedNoOcclBadPxlsFraction>1.5182061493396759e-01</borderedNoOcclBadPxlsFraction>
+    <borderedOcclBadPxlsFraction>9.8811304569244385e-01</borderedOcclBadPxlsFraction>
+    <borderedTexturedBadPxlsFraction>1.5232615172863007e-01</borderedTexturedBadPxlsFraction>
+    <borderedTexturelessBadPxlsFraction>1.5050502121448517e-01</borderedTexturelessBadPxlsFraction>
+    <borderedDepthDiscontBadPxlsFraction>3.0839520692825317e-01</borderedDepthDiscontBadPxlsFraction></case_cones_1>
+  <case_poster_0>
+    <!-- RMS -->
+    <borderedAllRMS>3.9232873916625977e+00</borderedAllRMS>
+    <borderedNoOcclRMS>3.6647446155548096e+00</borderedNoOcclRMS>
+    <borderedOcclRMS>8.8422250747680664e+00</borderedOcclRMS>
+    <borderedTexturedRMS>1.8588413000106812e+00</borderedTexturedRMS>
+    <borderedTexturelessRMS>5.6067132949829102e+00</borderedTexturelessRMS>
+    <borderedDepthDiscontRMS>3.6829626560211182e+00</borderedDepthDiscontRMS>
+    <!-- BadPxlsFraction -->
+    <borderedAllBadPxlsFraction>1.9138371944427490e-01</borderedAllBadPxlsFraction>
+    <borderedNoOcclBadPxlsFraction>1.6748243570327759e-01</borderedNoOcclBadPxlsFraction>
+    <borderedOcclBadPxlsFraction>9.5639789104461670e-01</borderedOcclBadPxlsFraction>
+    <borderedTexturedBadPxlsFraction>5.6871127337217331e-02</borderedTexturedBadPxlsFraction>
+    <borderedTexturelessBadPxlsFraction>3.6713454127311707e-01</borderedTexturelessBadPxlsFraction>
+    <borderedDepthDiscontBadPxlsFraction>1.5269514918327332e-01</borderedDepthDiscontBadPxlsFraction></case_poster_0>
+  <case_poster_1>
+    <!-- RMS -->
+    <borderedAllRMS>3.7858898639678955e+00</borderedAllRMS>
+    <borderedNoOcclRMS>3.5101103782653809e+00</borderedNoOcclRMS>
+    <borderedOcclRMS>8.8732309341430664e+00</borderedOcclRMS>
+    <borderedTexturedRMS>1.7596650123596191e+00</borderedTexturedRMS>
+    <borderedTexturelessRMS>5.3824634552001953e+00</borderedTexturelessRMS>
+    <borderedDepthDiscontRMS>3.7098689079284668e+00</borderedDepthDiscontRMS>
+    <!-- BadPxlsFraction -->
+    <borderedAllBadPxlsFraction>1.8374986946582794e-01</borderedAllBadPxlsFraction>
+    <borderedNoOcclBadPxlsFraction>1.5913774073123932e-01</borderedNoOcclBadPxlsFraction>
+    <borderedOcclBadPxlsFraction>9.7151619195938110e-01</borderedOcclBadPxlsFraction>
+    <borderedTexturedBadPxlsFraction>5.6424330919981003e-02</borderedTexturedBadPxlsFraction>
+    <borderedTexturelessBadPxlsFraction>3.4453427791595459e-01</borderedTexturelessBadPxlsFraction>
+    <borderedDepthDiscontBadPxlsFraction>1.7919595539569855e-01</borderedDepthDiscontBadPxlsFraction></case_poster_1>
+  <case_sawtooth_0>
+    <!-- RMS -->
+    <borderedAllRMS>3.7617659568786621e+00</borderedAllRMS>
+    <borderedNoOcclRMS>3.4613683223724365e+00</borderedNoOcclRMS>
+    <borderedOcclRMS>9.5704870223999023e+00</borderedOcclRMS>
+    <borderedTexturedRMS>3.4877974987030029e+00</borderedTexturedRMS>
+    <borderedTexturelessRMS>3.4165804386138916e+00</borderedTexturelessRMS>
+    <borderedDepthDiscontRMS>3.4102394580841064e+00</borderedDepthDiscontRMS>
+    <!-- BadPxlsFraction -->
+    <borderedAllBadPxlsFraction>1.4376677572727203e-01</borderedAllBadPxlsFraction>
+    <borderedNoOcclBadPxlsFraction>1.2024582922458649e-01</borderedNoOcclBadPxlsFraction>
+    <borderedOcclBadPxlsFraction>9.8325949907302856e-01</borderedOcclBadPxlsFraction>
+    <borderedTexturedBadPxlsFraction>1.0955993086099625e-01</borderedTexturedBadPxlsFraction>
+    <borderedTexturelessBadPxlsFraction>1.3816918432712555e-01</borderedTexturelessBadPxlsFraction>
+    <borderedDepthDiscontBadPxlsFraction>2.0972643792629242e-01</borderedDepthDiscontBadPxlsFraction></case_sawtooth_0>
+  <case_sawtooth_1>
+    <!-- RMS -->
+    <borderedAllRMS>3.5960786342620850e+00</borderedAllRMS>
+    <borderedNoOcclRMS>3.2707345485687256e+00</borderedNoOcclRMS>
+    <borderedOcclRMS>9.6264677047729492e+00</borderedOcclRMS>
+    <borderedTexturedRMS>3.3602063655853271e+00</borderedTexturedRMS>
+    <borderedTexturelessRMS>3.1148989200592041e+00</borderedTexturelessRMS>
+    <borderedDepthDiscontRMS>3.5442509651184082e+00</borderedDepthDiscontRMS>
+    <!-- BadPxlsFraction -->
+    <borderedAllBadPxlsFraction>1.3551394641399384e-01</borderedAllBadPxlsFraction>
+    <borderedNoOcclBadPxlsFraction>1.1169280856847763e-01</borderedNoOcclBadPxlsFraction>
+    <borderedOcclBadPxlsFraction>9.8572134971618652e-01</borderedOcclBadPxlsFraction>
+    <borderedTexturedBadPxlsFraction>1.0569544136524200e-01</borderedTexturedBadPxlsFraction>
+    <borderedTexturelessBadPxlsFraction>1.2175213545560837e-01</borderedTexturelessBadPxlsFraction>
+    <borderedDepthDiscontBadPxlsFraction>2.2737044095993042e-01</borderedDepthDiscontBadPxlsFraction></case_sawtooth_1>
+  <case_teddy_0>
+    <!-- RMS -->
+    <borderedAllRMS>1.2739402770996094e+01</borderedAllRMS>
+    <borderedNoOcclRMS>9.6110143661499023e+00</borderedNoOcclRMS>
+    <borderedOcclRMS>2.9743040084838867e+01</borderedOcclRMS>
+    <borderedTexturedRMS>8.1161022186279297e+00</borderedTexturedRMS>
+    <borderedTexturelessRMS>1.0950599670410156e+01</borderedTexturelessRMS>
+    <borderedDepthDiscontRMS>1.1757071495056152e+01</borderedDepthDiscontRMS>
+    <!-- BadPxlsFraction -->
+    <borderedAllBadPxlsFraction>2.2575500607490540e-01</borderedAllBadPxlsFraction>
+    <borderedNoOcclBadPxlsFraction>1.5212815999984741e-01</borderedNoOcclBadPxlsFraction>
+    <borderedOcclBadPxlsFraction>9.8261004686355591e-01</borderedOcclBadPxlsFraction>
+    <borderedTexturedBadPxlsFraction>1.2846168875694275e-01</borderedTexturedBadPxlsFraction>
+    <borderedTexturelessBadPxlsFraction>1.7672659456729889e-01</borderedTexturelessBadPxlsFraction>
+    <borderedDepthDiscontBadPxlsFraction>2.7063372731208801e-01</borderedDepthDiscontBadPxlsFraction></case_teddy_0>
+  <case_teddy_1>
+    <!-- RMS -->
+    <borderedAllRMS>1.2987769126892090e+01</borderedAllRMS>
+    <borderedNoOcclRMS>9.9732618331909180e+00</borderedNoOcclRMS>
+    <borderedOcclRMS>2.9729139328002930e+01</borderedOcclRMS>
+    <borderedTexturedRMS>8.4387731552124023e+00</borderedTexturedRMS>
+    <borderedTexturelessRMS>1.1350399017333984e+01</borderedTexturelessRMS>
+    <borderedDepthDiscontRMS>1.2696497917175293e+01</borderedDepthDiscontRMS>
+    <!-- BadPxlsFraction -->
+    <borderedAllBadPxlsFraction>2.2498458623886108e-01</borderedAllBadPxlsFraction>
+    <borderedNoOcclBadPxlsFraction>1.5106849372386932e-01</borderedNoOcclBadPxlsFraction>
+    <borderedOcclBadPxlsFraction>9.8466938734054565e-01</borderedOcclBadPxlsFraction>
+    <borderedTexturedBadPxlsFraction>1.3293771445751190e-01</borderedTexturedBadPxlsFraction>
+    <borderedTexturelessBadPxlsFraction>1.6991326212882996e-01</borderedTexturelessBadPxlsFraction>
+    <borderedDepthDiscontBadPxlsFraction>2.8500548005104065e-01</borderedDepthDiscontBadPxlsFraction></case_teddy_1>
+  <case_tsukuba_0>
+    <!-- RMS -->
+    <borderedAllRMS>1.6951924562454224e+00</borderedAllRMS>
+    <borderedNoOcclRMS>1.4115499258041382e+00</borderedNoOcclRMS>
+    <borderedOcclRMS>6.0092282295227051e+00</borderedOcclRMS>
+    <borderedTexturedRMS>1.4895352125167847e+00</borderedTexturedRMS>
+    <borderedTexturelessRMS>1.3159185647964478e+00</borderedTexturelessRMS>
+    <borderedDepthDiscontRMS>3.0281760692596436e+00</borderedDepthDiscontRMS>
+    <!-- BadPxlsFraction -->
+    <borderedAllBadPxlsFraction>6.7334882915019989e-02</borderedAllBadPxlsFraction>
+    <borderedNoOcclBadPxlsFraction>4.5884985476732254e-02</borderedNoOcclBadPxlsFraction>
+    <borderedOcclBadPxlsFraction>8.7637966871261597e-01</borderedOcclBadPxlsFraction>
+    <borderedTexturedBadPxlsFraction>3.8711227476596832e-02</borderedTexturedBadPxlsFraction>
+    <borderedTexturelessBadPxlsFraction>5.4155535995960236e-02</borderedTexturelessBadPxlsFraction>
+    <borderedDepthDiscontBadPxlsFraction>1.8206721544265747e-01</borderedDepthDiscontBadPxlsFraction></case_tsukuba_0>
+  <case_tsukuba_1>
+    <!-- RMS -->
+    <borderedAllRMS>1.6951924562454224e+00</borderedAllRMS>
+    <borderedNoOcclRMS>1.4115499258041382e+00</borderedNoOcclRMS>
+    <borderedOcclRMS>6.0092282295227051e+00</borderedOcclRMS>
+    <borderedTexturedRMS>1.4895352125167847e+00</borderedTexturedRMS>
+    <borderedTexturelessRMS>1.3159185647964478e+00</borderedTexturelessRMS>
+    <borderedDepthDiscontRMS>3.0281760692596436e+00</borderedDepthDiscontRMS>
+    <!-- BadPxlsFraction -->
+    <borderedAllBadPxlsFraction>6.7334882915019989e-02</borderedAllBadPxlsFraction>
+    <borderedNoOcclBadPxlsFraction>4.5884985476732254e-02</borderedNoOcclBadPxlsFraction>
+    <borderedOcclBadPxlsFraction>8.7637966871261597e-01</borderedOcclBadPxlsFraction>
+    <borderedTexturedBadPxlsFraction>3.8711227476596832e-02</borderedTexturedBadPxlsFraction>
+    <borderedTexturelessBadPxlsFraction>5.4155535995960236e-02</borderedTexturelessBadPxlsFraction>
+    <borderedDepthDiscontBadPxlsFraction>1.8206721544265747e-01</borderedDepthDiscontBadPxlsFraction></case_tsukuba_1>
+  <case_venus_0>
+    <!-- RMS -->
+    <borderedAllRMS>4.4572520256042480e+00</borderedAllRMS>
+    <borderedNoOcclRMS>4.2245359420776367e+00</borderedNoOcclRMS>
+    <borderedOcclRMS>1.1420451164245605e+01</borderedOcclRMS>
+    <borderedTexturedRMS>3.2037136554718018e+00</borderedTexturedRMS>
+    <borderedTexturelessRMS>4.9442439079284668e+00</borderedTexturelessRMS>
+    <borderedDepthDiscontRMS>3.0051858425140381e+00</borderedDepthDiscontRMS>
+    <!-- BadPxlsFraction -->
+    <borderedAllBadPxlsFraction>2.0508112013339996e-01</borderedAllBadPxlsFraction>
+    <borderedNoOcclBadPxlsFraction>1.9092726707458496e-01</borderedNoOcclBadPxlsFraction>
+    <borderedOcclBadPxlsFraction>9.7960698604583740e-01</borderedOcclBadPxlsFraction>
+    <borderedTexturedBadPxlsFraction>7.3960274457931519e-02</borderedTexturedBadPxlsFraction>
+    <borderedTexturelessBadPxlsFraction>2.9271477460861206e-01</borderedTexturelessBadPxlsFraction>
+    <borderedDepthDiscontBadPxlsFraction>2.1201705932617188e-01</borderedDepthDiscontBadPxlsFraction></case_venus_0>
+  <case_venus_1>
+    <!-- RMS -->
+    <borderedAllRMS>4.4572520256042480e+00</borderedAllRMS>
+    <borderedNoOcclRMS>4.2245359420776367e+00</borderedNoOcclRMS>
+    <borderedOcclRMS>1.1420451164245605e+01</borderedOcclRMS>
+    <borderedTexturedRMS>3.2037136554718018e+00</borderedTexturedRMS>
+    <borderedTexturelessRMS>4.9442439079284668e+00</borderedTexturelessRMS>
+    <borderedDepthDiscontRMS>3.0051858425140381e+00</borderedDepthDiscontRMS>
+    <!-- BadPxlsFraction -->
+    <borderedAllBadPxlsFraction>2.0508112013339996e-01</borderedAllBadPxlsFraction>
+    <borderedNoOcclBadPxlsFraction>1.9092726707458496e-01</borderedNoOcclBadPxlsFraction>
+    <borderedOcclBadPxlsFraction>9.7960698604583740e-01</borderedOcclBadPxlsFraction>
+    <borderedTexturedBadPxlsFraction>7.3960274457931519e-02</borderedTexturedBadPxlsFraction>
+    <borderedTexturelessBadPxlsFraction>2.9271477460861206e-01</borderedTexturelessBadPxlsFraction>
+    <borderedDepthDiscontBadPxlsFraction>2.1201705932617188e-01</borderedDepthDiscontBadPxlsFraction></case_venus_1></stereo_matching>
+</opencv_storage>
index 4f4c26e7fd31c12d3cb0737641db774fbfb4a8ac..e9280129d3903e375bb47345352a725d4c98d881 100644 (file)
@@ -1,15 +1,14 @@
 <?xml version="1.0"?>\r
 <opencv_storage>
 <datasets>\r
-       <names_scale_unknown>
-               barn2 "8" "0"\r
-               bull "8" "0"\r
-               cones "4" "0"\r
-               poster "8" "0"\r
-               sawtooth "8" "0"\r
-               teddy "4" "0"
-               tsukuba "16" "0"\r
-               venus "8" "0"
-       </names_scale_unknown>
+       <!-- name, scaleFactor, unknValue -->
+       barn2 "8" "0"\r
+       bull "8" "0"\r
+       cones "4" "0"\r
+       poster "8" "0"\r
+       sawtooth "8" "0"\r
+       teddy "4" "0"
+       tsukuba "16" "0"\r
+       venus "8" "0"
 </datasets>\r
 </opencv_storage>