I've recently been looking at lens distortion correction solutions, and I just wonder what the values a, b and c actually mean. (I'm using Hugin/lensfun, I don't know if these are standard values or specific to this software.) I've looked for the answer but I haven't found an answer, is it so complex or abstract that no one can explain it simply?
The actual lens correction parameters a, b and c which are used to correct for barrel distortion, pincushion distortion and even wavy distortion.
The a and c parameters control more complex forms of distortion. In most cases it will be enough to optimize for the b parameter only, which is good at correcting normal barrel distortion and pincushion distortion.
The lens distortion a, b and c parameters correspond to a third degree polynomial describing radial lens distortion:
r_src = (a * r_dest^3 + b * r_dest^2 + c * r_dest + d ) * r_dest
where r_dest and r_src refer to the normalized radius of an image pixel (distance from the center) A perfect lens would have a=b=c=0.0 and d=1.0 (d is always = 1-(a+b+c)) which resolves into r_src = r_dest
Usual values for a, b and c are below 1.0, in most cases below 0.01. Too high values suggest that you chose a wrong lens type, f.e. fisheye instead of rectilinear or vice versa. This refers to the absolute values of course since a, b and c can be positive or negative (f.e. both 4.5 and -4.5 are considered too high values).