Actual size of check block when performing camera calibration?

Hello, I am currently performing camera calibration. The workflow of my project is as follows:

  1. Visualize a 10 x 7 chessboard on a tablet PC.
  2. Capture the image with left, right camera.
  3. Perform camera calibration using the captured image.

The chessboard that I downloaded is Checkerboard-A4-25mm-10x7. When printed on A4 paper, the size of the check blocks is 25mm, but when displayed on a tablet PC, it is smaller than that. In this case, does the actual size of the chess block affect the result of the camera calibration?

Here is my code and data.
https://github.com/dohyeonYoon/pyStereo

for stereo calibration (extrinsics), yes. you need to know (measure/calculate) the size of those squares. that determines the absolute scale.

for monocular calibration (intrinsics), no.

you’d also benefit from the pattern spanning a larger fraction of the picture. the smaller it is, the more difficult it is to estimate lens distortion. you can do that with a larger pattern, or by getting closer to the camera. mind the focus of the camera. the pattern will get blurry if you get too close. you can’t change the focus because that commonly affects the focal length and lens distortion.

using a computer screen of any kind is a good idea though. it’s a lot more accurate than most printers.

1 Like

Thank you for reply sir,
Then, do I need to change the 16th line of my calibration code from
objp[:,:2] = np.mgrid[0:10,0:7].T.reshape(-1,2)
to
objp[:,:2] = np.mgrid[0:10,0:7].T.reshape(-1,2) * real_block_size
?

that looks sensible.

I understand !
thank you sir! :slight_smile: