I'm doing some experimentation with OpenCV calibrateCamera,trying to figure out how much changing the pose of my camera affects my measurements.
For example I have a 16mm focal length lens, and a 400 mm working distance. I calibrate the camera using a checkerboard pattern and calibrateCamera. Then I grab an image containing two fiducials, transform the locations of the fiducials to real world coordinates and I calculate the distance between the fiducials to be 10mm.
Now, if I move the camera in the x or y axis, not changing my working distance my readings should be the same correct?(assuming I am correcting for distortion)
If I move in the z direction my 10 mm reading will change. Can I calculate the 'error' introduced by changing my working distance by just looking at the ratios of object size to working distance? e.g. 10mm/400mm = .025, if I move my camera farther away from the object by 1mm then 10mm/401mm = 0.02494, so I can predict a measurement of around .02494 * 400 = 9.936mm.?
What about a more complicated scenario? What if I move the camera back by 5mm and up by 5mm, so there is now effectively a tilt. Can I calculate what this error would be? I'm just trying to figure out how much the pose of my camera can change before I need to recalibrate.