Init params (StereoSGBMParams) in StereoSGBMImpl constructor initialization list
authorDan Ben Yosef <danbey@gmail.com>
Wed, 10 Mar 2021 18:00:17 +0000 (13:00 -0500)
committerDan Ben Yosef <danbey@gmail.com>
Wed, 10 Mar 2021 18:05:35 +0000 (13:05 -0500)
    To improve preformence it is better to init the params (StereoSGBMParams) in the
    initialization list.

modules/calib3d/src/stereosgbm.cpp

index 7d5d23c18d0c7f74f0d862311074fb4fc05cf899..70eb3c658ae57a929e0a331c44c90d6cfc1787e3 100644 (file)
@@ -2186,19 +2186,21 @@ class StereoSGBMImpl CV_FINAL : public StereoSGBM
 {
 public:
     StereoSGBMImpl()
+        : params()
     {
-        params = StereoSGBMParams();
+        // nothing
     }
 
     StereoSGBMImpl( int _minDisparity, int _numDisparities, int _SADWindowSize,
                     int _P1, int _P2, int _disp12MaxDiff, int _preFilterCap,
                     int _uniquenessRatio, int _speckleWindowSize, int _speckleRange,
                     int _mode )
+        : params(_minDisparity, _numDisparities, _SADWindowSize,
+                 _P1, _P2, _disp12MaxDiff, _preFilterCap,
+                 _uniquenessRatio, _speckleWindowSize, _speckleRange,
+                 _mode)
     {
-        params = StereoSGBMParams( _minDisparity, _numDisparities, _SADWindowSize,
-                                   _P1, _P2, _disp12MaxDiff, _preFilterCap,
-                                   _uniquenessRatio, _speckleWindowSize, _speckleRange,
-                                   _mode );
+        // nothing
     }
 
     void compute( InputArray leftarr, InputArray rightarr, OutputArray disparr ) CV_OVERRIDE