1 | initial version |
Darn, I was hoping there would be an answer to this one. I'm getting similar results currently. One time, when I changed the following parameters from true (1) to false (0), it gave me a pretty clean, correct-looking image:
<!-- Consider only fy as a free parameter, the ratio fx/fy stays the same as in the input cameraMatrix.
Use or not setting. 0 - False Non-Zero - True-->
<Calibrate_FixAspectRatio> 0 </Calibrate_FixAspectRatio>
<!-- If true (non-zero) tangential distortion coefficients are set to zeros and stay zero.-->
<Calibrate_AssumeZeroTangentialDistortion>0</Calibrate_AssumeZeroTangentialDistortion>
<!-- If true (non-zero) the principal point is not changed during the global optimization.-->
<Calibrate_FixPrincipalPointAtTheCenter> 0 </Calibrate_FixPrincipalPointAtTheCenter>
However, this only worked one time. For many more cases, it didn't matter what I set these parameters too. It gave me these very weird "undistorted" images.
I'm using a 4 x 11 asymmetrical circles grid pattern on a 8.5"x11" sheet of paper (the grid takes up ~85% of the area of the paper).
2 | No.2 Revision |
Darn, I was hoping there would having the same problem. I calibrated over and over again, but couldn't get any results better than the image you linked to, and sometimes worse. I read this question and answer from elsewhere on the site, and it helped me solve my problem. In the link, you will see that the person answering the question writes that the problem is related to deficiencies in a couple of OpenCV functions that only become apparent when dealing with cameras with strong radial distortion. For me, I was able to "solve" the problem simply by zooming in. The "fish bowl" effect of radial distortion is most pronounced near the edges of the field-of-view, so by zooming in, you are effectively "cropping" your image and thereby reducing the extreme radial distortion. This may not be an answer to this one. I'm getting similar results currently. One time, when I changed practical for your application, if you require the following parameters from true (1) to false (0), widest angle possible, or if your camera doesn't have zoom, but it gave me a pretty clean, correct-looking image:worked for me!
<!-- Consider only fy as a free parameter, the ratio fx/fy stays the same as in the input cameraMatrix.
Use or not setting. 0 - False Non-Zero - True-->
<Calibrate_FixAspectRatio> 0 </Calibrate_FixAspectRatio>
<!-- If true (non-zero) tangential distortion coefficients are set to zeros and stay zero.-->
<Calibrate_AssumeZeroTangentialDistortion>0</Calibrate_AssumeZeroTangentialDistortion>
<!-- If true (non-zero) the principal point is not changed during the global optimization.-->
<Calibrate_FixPrincipalPointAtTheCenter> 0 </Calibrate_FixPrincipalPointAtTheCenter>
However, this only worked one time. For many more cases, it didn't matter what I set these parameters too. It gave me these very weird "undistorted" images.
I'm using a 4 x 11 asymmetrical circles grid pattern on a 8.5"x11" sheet of paper (the grid takes up ~85% of the area of the paper).