Wierd (and possibly stupid) theoretical question: if I have the position of a camera in 3d space as well as the position of 3 points in 3d space, and then I give those values as inputs to calib3d.projectpoints, and then feed the output of that function to Calib3d.solvepnp, will I get the initial camera position I started with? I feel like I should, but I’m not too good with camera stuff, so I thought I’d ask the smart internet people.

degrees of freedom remain, I’d guess two, but don’t ask me to solve that in my head.

consider the number of points you need for a homography.

Thank you for your response!! Geometry is not my strong suit, but a quick internet search suggested that I need 4 points for a homography (which I understand now to be a mapping between 2 images). So then if I replace my inputs of the 3 points in 3d space to calib3d.projectpoints with 4 points, I should theoretically end up with my initial camera position? I apologize if I’m asking the obvious.

yes, I expect that 4 points will leave no degrees of freedom.

you’d best place them in a square or rectangle. don’t make any (three or four) of them be colinear in image space.