Dear Prof. Scaramuzza,
First of all, thank you very much for your fantastic toolbox, OCamCalib. I’ve been used it for the inner parameter calibration of several fisheye cameras and gotten very precise results.
This time I’m trying to calibrate a raw quality camera with a lens of wide view angle by using very noisy images. It results in a few pixels random errors for corner detection.
I‘m using checker board with 7 x 12 corners. When I put 6 for the number of squares in X-direction and 11 for the number of squares in Y-direction (hereafter I abbreviate this case 1), the final results after refinement is reasonable even with several
pixel residuals. However, when I put 11 for the number of squares in X-direction and 6 for the number of squares in Y-direction (hereafter I abbreviate this case 2), the final results after refinement is drastically different and the estimated image center
is several tens pixels far from the proper center.
The detected coordinates of the corners are completely the same between the case 1 and 2. Each of calib_data.Xt calib_data.Yt calib_data.Xp_abs calib_data.Yp_abs looks correct for both cases. But the results after the first call of calibration(calib_data)
which is before findcenter is different each other. This can be confirmed by processing the sample data you included to the archive, that is VMRImage, with using 5 and 6 for the number of squares in X-direction and Y-direction, and vise versa (please look
at the attached text files). Though I’m not good at mathematics, I doubt that the seed of the different results exists in the SVD function in calibration(calib_data).
I guess the above mentioned phenomenon causes usually no problem because of very small differences. But as my current experience, when the error of corner detection are very large, the final results may become very much different between the case 1 and
case 2.
What I want to know is as follows. When the vertical and horizontal number of corners of a checker board is different, the number of squares in X-direction should be always assigned as smaller than the number of squares in Y-direction?
I would very much appreciate your advice.
Nobuyuki Kita@aist