Thanks a lot for your help.
Blockquote
I would also suggest trying the ChAruco calibration target / functions. It has other advantages that make it worth using, but also it might not implement the corner finding with fixed parameters in the way that the normal chessboard calibration does. (I don’t know that, but it might be worth a try.)
It’s a pretty good idea to use ChAruco, I will definitely have a try.
Blockquote
Are you using the same input images for these two tests, or are you collecting new images for each test?
Yes, I’m using the same image sets for both vertical and horizontal object points. CALIB_FIX_ASPECT_RATIO Doesn’t help in my case. In my case, the fx fy should all be around 2400, but with 5000 when using k1 k2 p1 p2 k3 model (cv::calibrateCamera), and 1514 when using k1 k2 k3 k4 model (cv::fisheye::calibrate). None of them has a good undistortion result.
So I’m thinking about whether is it a problem caused by the rolling shutter camera. Because I’m holding the calibration board and moving pretty fast I think. (Although no significantly blur was observed)
After I capture the image which I move the calib board pretty slow, it gives me a descent result which does around 2400.
So, I wonder if OpenCV’s calibration method is not good at using moving object with rolling shutter camera, cause I find kalibr do have specifically talk about this situation, have you ever use kalibr? Is it worth a try? GitHub - ethz-asl/kalibr: The Kalibr visual-inertial calibration toolbox
Again, thanks a lot for your patient help, it still helps me learn a lot.