Reputation: 804
In camera calibration, i have used calibrateCamera() to find the camera parameters from several views of a calibration pattern. It precisely does two things:
1) Estimate the Initial Camera Parameters in closed form, assuming lens distortion as zero.
2) Run the global Levenberg-Marquardt optimization algorithm to minimize the reprojection error, which is done using projectPoints()
Now, i don't just want to compute the Minimized Reprojection Error but the fit parameters which caused it. There is currently no function which would return the error-free parameters. So, what i thought was i would use projectPoints() to get the reprojected image points and then use the reprojected image points and world points to calibrate again and obtain the error-free parameters. Problem is this is not something i am sure would give me output. Can anybody tell me whether it is? Any help would be appreciated.
Upvotes: 3
Views: 1290
Reputation: 51
Levenberg-Marquardt will give you the best estimate of what your model and data are capable of. You can't get an error free parameters unless your input data is noise free and your model complexity matches the complexity of your real model.
For example, your model is: x * 2 + y = z, with x > 0 and x is an integer number
Input data z = { 3 }
Depending on your initial value, Levenberg-Marquardt will give you: (x = 1, y = 1) or (x=2,y=-1) or ... which are error free
However, with the same input z, if your model is: x * 2 = z, with x > 0 and x is an integer number
There is no way that you will get an error free parameters
Upvotes: 0