Hello,
I am attempting to calibrate several webcams for optical tracking using Matlab's cameraCalibrator tool. Following the instructions via the help guide, I was able to obtain the camera's parameters, including the radial distortion coefficients as follows:
k=[-0.0548 0.2001 -0.3073]
I encounter an issue however, when I plug these values into the distortion correction equations along with any set of (x_d,y_d) coordinates:
x_d = x(1 + k1*r^2 + k2*r^4 + k3*r^6)
y_d= y(1 + k1*r^2 + k2*r^4 + k3*r^6)
where r^2 = x^2 + y^2
Analyzing this pair of nonlinear equations, you quickly discover that in order to get any (x,y) values that are on the magnitude of our image (1280×720 –> +-640, +-360) you either need really small k values (on the order of e^-10) or you need to multiply your (x,y) coordinates by some scalar to make them smaller.
I am comfortable assuming Matlab's radial distortion coefficients (k, listed above) are accurate, because all the other intrinsic/extrinsic data the cameraCalibrator tool provided was correct. This leads me to ask the question: do I need to normalize the image coordinates somehow and if so, how do I do that?
Thank you for your help
-Alex
Best Answer