converter stereo correspondence algorithms to the new style

This commit is contained in:
Vadim Pisarevsky
2013-03-22 01:05:30 +04:00
parent bbae05413d
commit 7661625c39
8 changed files with 287 additions and 248 deletions

View File

@@ -67,8 +67,8 @@ int main(int argc, char** argv)
bool no_display = false;
float scale = 1.f;
Ptr<StereoMatcher> bm = createStereoBM(16,9);
Ptr<StereoMatcher> sgbm = createStereoSGBM(0,16,3);
Ptr<StereoBM> bm = createStereoBM(16,9);
Ptr<StereoSGBM> sgbm = createStereoSGBM(0,16,3);
StereoVar var;
for( int i = 1; i < argc; i++ )
@@ -221,33 +221,33 @@ int main(int argc, char** argv)
numberOfDisparities = numberOfDisparities > 0 ? numberOfDisparities : ((img_size.width/8) + 15) & -16;
//bm->set("roi1", roi1);
//bm->set("roi2", roi2);
bm->set("preFilterCap", 31);
bm->set("SADWindowSize", SADWindowSize > 0 ? SADWindowSize : 9);
bm->set("minDisparity", 0);
bm->set("numDisparities", numberOfDisparities);
bm->set("textureThreshold", 10);
bm->set("uniquenessRatio", 15);
bm->set("speckleWindowSize", 100);
bm->set("speckleRange", 32);
bm->set("disp12MaxDiff", 1);
bm->setROI1(roi1);
bm->setROI2(roi2);
bm->setPreFilterCap(31);
bm->setBlockSize(SADWindowSize > 0 ? SADWindowSize : 9);
bm->setMinDisparity(0);
bm->setNumDisparities(numberOfDisparities);
bm->setTextureThreshold(10);
bm->setUniquenessRatio(15);
bm->setSpeckleWindowSize(100);
bm->setSpeckleRange(32);
bm->setDisp12MaxDiff(1);
sgbm->set("preFilterCap", 63);
sgbm->setPreFilterCap(63);
int sgbmWinSize = SADWindowSize > 0 ? SADWindowSize : 3;
sgbm->set("SADWindowSize", sgbmWinSize);
sgbm->setBlockSize(sgbmWinSize);
int cn = img1.channels();
sgbm->set("P1", 8*cn*sgbmWinSize*sgbmWinSize);
sgbm->set("P2", 32*cn*sgbmWinSize*sgbmWinSize);
sgbm->set("minDisparity", 0);
sgbm->set("numDisparities", numberOfDisparities);
sgbm->set("uniquenessRatio", 10);
sgbm->set("speckleWindowSize", 100);
sgbm->set("speckleRange", 32);
sgbm->set("disp12MaxDiff", 1);
sgbm->set("fullDP", alg == STEREO_HH);
sgbm->setP1(8*cn*sgbmWinSize*sgbmWinSize);
sgbm->setP2(32*cn*sgbmWinSize*sgbmWinSize);
sgbm->setMinDisparity(0);
sgbm->setNumDisparities(numberOfDisparities);
sgbm->setUniquenessRatio(10);
sgbm->setSpeckleWindowSize(100);
sgbm->setSpeckleRange(32);
sgbm->setDisp12MaxDiff(1);
sgbm->setMode(alg == STEREO_HH ? StereoSGBM::MODE_HH : StereoSGBM::MODE_SGBM);
var.levels = 3; // ignored with USE_AUTO_PARAMS
var.pyrScale = 0.5; // ignored with USE_AUTO_PARAMS

View File

@@ -39,12 +39,10 @@ int main( int argc, char** argv )
int ndisparities = 16*5; /**< Range of disparity */
int SADWindowSize = 21; /**< Size of the block window. Must be odd */
StereoBM sbm( StereoBM::BASIC_PRESET,
ndisparities,
SADWindowSize );
Ptr<StereoBM> sbm = createStereoBM( ndisparities, SADWindowSize );
//-- 3. Calculate the disparity image
sbm( imgLeft, imgRight, imgDisparity16S, CV_16S );
sbm->compute( imgLeft, imgRight, imgDisparity16S );
//-- Check its extreme values
double minVal; double maxVal;