Check for W=0 needed in cvConvertPointsHomogeneous (Bug #1865)


Added by Pranav Kant Gaur almost 13 years ago. Updated almost 13 years ago.


Status:Cancelled Start date:2012-04-30
Priority:High Due date:
Assignee:Vadim Pisarevsky % Done:

0%

Category:calibration, 3d
Target version:2.4.1
Affected version: Operating System:
Difficulty: HW Platform:
Pull request:

Description

In cvConvertPointsHomogeneous,
http://code.opencv.org/projects/opencv/repository/entry/trunk/opencv/modules/calib3d/src/fundam.cpp

When 's_dims <= d_dims' at line 925
If s_dims equals d_dims
I think a case to check for whether last element of a point in 'src' is not '0' should be added,because if it is not done then it will make homogenous points of form (X,Y,0) which will map to points at infinity in both X & Y dimensions in cartesian space.


History

Updated by Alexander Shishkov almost 13 years ago

  • Category set to calibration, 3d

Updated by Vadim Pisarevsky almost 13 years ago

if s_dims d_dims and s_dims 3 (the case you consider in the ticket), then the points have form (t*x, t*y, t). we shall not convert the points to anything else, I believe. in particular, we shall not replace (x, y, 0) with (x, y, 1).

You may do it explicitly by converting 3d points to 2d: (t*x, t*y, t) -> (x, y) and back: (x, y) -> (x, y, 1), where each of the transformations can be done by cvConvertHomogeneous.

  • Status changed from Open to Cancelled
  • Assignee set to Vadim Pisarevsky

Updated by Andrey Kamaev almost 13 years ago

  • Target version set to 2.4.1

Also available in: Atom PDF