Distortion Coefficients Units

asked 2017-02-02 07:29:29 -0500

Alemao gravatar image

I already checked other questions here in the forum about this but I did not find a good answer. I have to remove the lens distortion of a picture, my distortion coefficients are in k1mm-2, k2mm-4, and k3mm-6. But I do not get satisfactory results, I'm sure my data is correct, my question is whether I use my parameters the way they are (mm-2, mm-4, mm-6) or I have to do some transformation before?

Focal, cx and cy are correct are Ok.


edit retag flag offensive close merge delete


what do you mean k1mm-2 ? isit in millimeter square inverse= 1/(mm * mm)?

LBerger gravatar imageLBerger ( 2017-02-02 10:09:22 -0500 )edit

Yes, thats it...

Alemao gravatar imageAlemao ( 2017-02-02 10:49:55 -0500 )edit

I think something is missing in your problem:"lens distortion of a picture" Do you mean you scan a picture?.

Where is opencv problem ?
how can you know k1 without calibration ?

LBerger gravatar imageLBerger ( 2017-02-02 15:29:43 -0500 )edit

Sorry ... it's an aerial photo taken by a PhaseOne camera, IXA180. The camera was calibrated by another company that sent me the parameters. They also sent me a photo without the distortion and I'm trying to do the same with OpenCV but I do not have the same result. I'm sure the photo sent by them is correct, but they will not tell me how they did it.

Alemao gravatar imageAlemao ( 2017-02-02 15:50:31 -0500 )edit

Are they perhaps k4, k5, and k6? If you look at this page, they are apparently the same units as k1, k2, and k3, but in a different part of the equation..

Tetragramm gravatar imageTetragramm ( 2017-02-02 18:18:40 -0500 )edit

If your coefficient are in mm (-2 or -4 , -6) there are two possibilities :

  1. To calibrate camera companies print a grid on a paper and use this camera with this grid using optical table. You will have coefficients in mm
  2. pixel size is 5.2 micrometer use this size to convert your coefficient
LBerger gravatar imageLBerger ( 2017-02-03 01:56:54 -0500 )edit

The real problem is this: I have two cameras on a plane, side by side, one RGB with 80Mp and another InfraRed with 60Mp. The photos are taked at the same time. I need to generate a 4 band image, but the IR have don´t fit perfectly with the RGB photo. The two cameras are calibrated. What i´m doing, i remove the lens distortion from the photos, so i use ORB to detect some points, find a homography and use warpperspective to fit the IR on RGB. But i still finded small offsets. In the center of photos it´s 100% fitted. I can´t use SIFT or SURF because the photos are too big and i have problems with memory. I believe that the problem is in the undistortion process. I converted the k coefficients to pixel, dividing by pixelsize without sucess..

Sorry for my english.

Alemao gravatar imageAlemao ( 2017-02-03 04:58:28 -0500 )edit

may be you should post a new question.

About memory problem you can use a mask or may be split your image.

You mustn't forget that you have a stereo system you can have a small disparity.

Is field of view of two cameras are equal (exactly)... Have you try to resize largest image ?

LBerger gravatar imageLBerger ( 2017-02-03 06:33:55 -0500 )edit

i already used a mask without sucess... The another company sent to me a 4 band image without any disparity!! 100% ok! the field of view its the same (99,5 %) and i already resized the IR to RGB size or vice-versa.

Alemao gravatar imageAlemao ( 2017-02-03 07:54:52 -0500 )edit