Check for W=0 needed in cvConvertPointsHomogeneous (Bug #1865)
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