cvComputeCorrespondEpilines (Bug #1635)


Added by Dongbin Chen about 13 years ago. Updated almost 13 years ago.


Status:Done Start date:2012-02-29
Priority:Normal Due date:
Assignee:Vadim Pisarevsky % Done:

0%

Category:calibration, 3d
Target version:2.4.0 Estimated time:4.00 hours
Affected version: Operating System:
Difficulty: HW Platform:
Pull request:

Description

I fund there is a bug on the function, cvComputeCorrespondEpilines, in fundam.cpp when I use it for single point operation. I have fixed the bug as following at line 685, 686, 692 and 693
dims = points->rows;
count = cn*points->cols;

and also I have corrected as following at line 718,719, 725 and 726
abc_dims = lines->rows;
abc_count = abc_cn*lines->cols;

but the above correction does not work for multipoints operation. I fund this bug on version 2.3.1.


Associated revisions

Revision aed276e6
Added by Vadim Pisarevsky almost 13 years ago

fixed cvComputeCorrespondEpilines to handle <5 points (ticket #1635)

Revision e14dc887
Added by Andrey Pavlenko over 11 years ago

Merge pull request #1635 from alalek:cmake_fix_export_java

History

Updated by Alexander Shishkov almost 13 years ago

Could you provide any code sample for reproduction the bug?

  • Target version deleted ()
  • Category set to calibration, 3d
  • Assignee set to Dongbin Chen

Updated by Alexander Shishkov almost 13 years ago

  • Assignee deleted (Dongbin Chen)

Updated by Vadim Pisarevsky almost 13 years ago

thanks! the bug has been fixed in SVN trunk, r7691.

Now, to compute epipolar line for a single point, you can use the following code:

CvPoint2D32f m = { x, y };
float abc[3];
CvMat mmat = cvMat(1, 1, CV_32FC2, &m);
CvMat abcmat = cvMat(1, 1, CV_32FC3, abc);
cvComputeCorrespondEpilines( &mmat, &abcmat );
  • Status changed from Open to Done
  • Assignee set to Vadim Pisarevsky

Updated by Alexander Shishkov almost 13 years ago

  • Target version set to 2.4.0

Also available in: Atom PDF