0
$\begingroup$

In undistortPoints function from OpenCV, the documentations says that

http://docs.opencv.org/2.4/modules/imgproc/doc/geometric_transformations.html#undistortpoints

where undistort() is an approximate iterative algorithm that estimates the normalized original point coordinates out of the normalized distorted point coordinates (“normalized” means that the coordinates do not depend on the camera matrix).

It seems that the normalized point coordinates is obtained by adding 1 to the third coordinate. What does normalized point coordinates means? How can it be used for?

In the above, there are two lines

x" = (u - cx)/fx

y" = (v - cy)/fy

Is there one term for the coordinates(x'', y'')?

$\endgroup$
1
$\begingroup$

http://docs.opencv.org/2.4/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html, this link maybe helpful. Here is my answer based on that.

1.What does normalized point coordinates means?

In the pinhole camera model $$ \begin{bmatrix} x \\ y \\ z \end{bmatrix} = R \begin{bmatrix} X \\ Y \\ Z \end{bmatrix} + t $$ $$x'= x/z$$ $$y'= y/z$$ $$u = f_x * x' + c_x$$ $$v = f_y * x' + c_y$$

so (x', y', 1) is the normalized point, it means two things:

  • normalized point does not depends on the camera matrix
  • normalized point does not depends on the scale factor

In fact, (x, y, z) are the coordinates of a 3D point in the camera coordinate space

2. How can it be used for?

Before explaining how i use it, i'd like to give you the pinhole camera model with distortion consideration, so the equation above is extended as:

enter image description here

In my application, i use it to do back projection of 2D image point to 3D model point:

  • use undistortPoints function to get undistorted normalized point (x', y');

  • solve the pinhole camera model equation to get 3D model point. $$ z\begin{bmatrix} x' \\ y' \\ 1 \end{bmatrix} = R \begin{bmatrix} X \\ Y \\ Z \end{bmatrix} + t $$ where $Z$ is known.

3. Is there one term for the coordinates(x'', y'')?

i'm not sure about that~

$\endgroup$
  • $\begingroup$ (x', y',1) can be considered as a 3D point, so any transformation that can apply to (x, y, z) can apply to (x', y',1) as well? $\endgroup$ – Jogging Song Aug 22 '17 at 0:55

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.