# how can I do back-projection? This post is a wiki. Anyone with karma >50 is welcome to improve it.

I calibrated my single camera using Camera Calibration Toolbox for Matlab(http://www.vision.caltech.edu/bouguetj/calib_doc/), and already have the intrinsic and extrinsic parameters.

Now given a pixel of one image, how can i do back-projection from 2D pixel to 3D ray? That is, how can i calculate the equation of ray connecting the camera center and the pixel point on the image sensor plane? And how can i know the equation of physical image sensor plane in world reference frame?

thx very much.

edit retag close merge delete

Sort by » oldest newest most voted For projecting 3d point to the image plane you should use the equations: I assume that there is no distortion (or you already have called undistort() function) For back projection you also can use these equations. Let you have pixel with coordinates (u,v) and you want to find 3d points that can be projected to this point (it is a ray in 3d space).

These points:

z = some value > 0
x = (u-cx)*z/fx
y = (v-cy)*z/fy

more

Thank you for your answer. But I think image plane should be a plane z > 0. If it's the plane z = 0, then the point on the image plane calculated by x = (u-cx)z/fx and y = (v-cy)z/fy will be P(0, 0, 0). Isn't that the camera center should be O(0, 0, 0)? Image plane locates before camera center, so I think image plane should be a plane z > 0. But how can I get the exact equation of the image plane(the physical image sensor plane)?

Yes, you are right z > 0. In this model it is impossible to find equation of the image plane. You need some more input data, e.g. pixel size in mm.

Thx again. I use pixel size deltaD to get focal length and z value: f = deltaD*(fx+fy)/2, z = f. Then I can know the exact 3D position of points on image plane.

Hi gslshbs how did you get the deltaD value?

Official site

GitHub

Wiki

Documentation