Filtering solutions with imaginary part
authoredgarriba <edgar.riba@gmail.com>
Mon, 28 Jul 2014 10:01:39 +0000 (12:01 +0200)
committeredgarriba <edgar.riba@gmail.com>
Mon, 28 Jul 2014 10:01:39 +0000 (12:01 +0200)
modules/calib3d/src/dls.cpp

index 0bf23f0..3a56010 100644 (file)
@@ -149,8 +149,8 @@ void dls::run_kernel(const cv::Mat& pp)
                // TODO: check imaginari part to filter solutions
 
                //if (imag(V(2,k)) == 0)
-               //const double epsilon = 1e-4;
-           //if( eigenvec_i.at<double>(1,k) >= -epsilon && eigenvec_i.at<double>(1,k) <= epsilon )
+               const double epsilon = 1e-4;
+           if( eigenval_i.at<double>(k,0) >= -epsilon && eigenval_i.at<double>(k,0) <= epsilon )
                { // it should work without checking imaginari part
 
                        double stmp[3];