Question about camera calibration: findChessboardCorners given different orientation

I would suggest you not use a square chessboard. I would also suggest using the ChAruco board instead - you can use images that don’t contain the whole chessboard which makes it much easier to get samples near the edges / corner of the image (which in turn gives you distortion model that is correct over a larger portion of the image).

I’m not sure what you are asking in the second part of the question, but the results you get will vary somewhat from run to run. If you are getting significantly different results with “horizontal sequence” and “vertical sequence”, I would suggest trying to figure out which one is closest to your expected values and try to understand the difference between the two. They can’t both be correct if the results are significantly different. The calibration process is trying to estimate the physical properties of the camera, so in that sense there is one right answer. If you know the effective focal length of the lens you are using and the pixel size of the sensor, you can get a reasonable estimate of what the focal length should be for your camera matrix. (focal length is stored at (0,0) and (1,1) of your camera matrix).

For example, if the lens you are using has a 5mm efl, and your pixel size is 2.2 microns, your calibrated focal length should be approximately 5mm / 2.2 um = 2500.

If you are using a camera that has an auto-focus lens, I’d suggest getting a different camera / lens so that you can lock it down to a fixed focal length.

1 Like