Ask Your Question

how can I do back-projection?

asked 2012-12-03 20:56:50 -0600

this post is marked as community wiki

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(, 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 flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted

answered 2012-12-04 05:09:01 -0600

AlexanderShishkov gravatar image

updated 2012-12-06 15:31:27 -0600

For projecting 3d point to the image plane you should use the equations:

image description

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
edit flag offensive delete link 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)?

gslshbs gravatar imagegslshbs ( 2012-12-05 06:58:50 -0600 )edit

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.

AlexanderShishkov gravatar imageAlexanderShishkov ( 2012-12-06 02:34:11 -0600 )edit

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.

gslshbs gravatar imagegslshbs ( 2012-12-06 20:03:28 -0600 )edit

Hi gslshbs how did you get the deltaD value?

ikhtiyor gravatar imageikhtiyor ( 2019-12-25 23:26:37 -0600 )edit

Question Tools

1 follower


Asked: 2012-12-03 20:56:50 -0600

Seen: 9,819 times

Last updated: Dec 06 '12