I am doing this little project where try to calibrate a Raspberry Pi Camera. I use Matlab and I do not want to use the Calibration Toolbox (!). The algorithm I use is the direct linear transformarion where for given X,Y,Z Coordinates as well as X,Y Image Coordinates I am able to calculate the 12 Camera Parameters for the Projection Matrix. After further calculation I get the Calibration Matrix K (fx, fy, cx, cy, s=0) and Rotation R/translation t.

My problem consisting in the application of above Matrix. I mean it should be possible without toolbox, right? ..It all comes from matrix calculation and stuff.. but I can not find ANY literatur to apply it in some sort of manner.

Anyone have any paper/Literatur regarding this Problem? Or even better straight forward help/method/example?

/edit: I try to explain it from another perspective:

When you use the whole Checkerboard Calibration which is either included in openCV or Matlab with its calibration toolbox, you take a couple of pictures (these checker/chessboards) with YOUR Camera and press/type "Calibrate" to calibrate the camera. Now, the output image you get differs a little bit (compared to the first picture you took with the raw camera) based on your new camera parameters, right? The whole procedure calculates new intrinsic/extrinsic (=Projection Matrix) Matrices and applys them somehow.

Ok.. now to my problem. I use a direct linear transformation, which gives me a intrinsic / extrensic paramters too... BUT I do not have a fancy magic button that applys these new parameters and changes the projection matrix which leads to a new image. So basically I want to calibrate my camera with a given calibration matrix.

It should work out as some kind of automatic self-calibration. where no one has to put some kind of checkerboard with the toolbox infront of the camera. Example: Camera is looking down from the ceiling of a warehouse (So, lets say you change something or place the camera somewhere else, which would lead to have a guy go up there EVERYTIME and place Checkerboards infront of it using the toolbox...). So now it tracks this little cleaning robot. The robot has data (X,Y,Z) of world coordinates, where Z ist the robot height. Robot says his X is 0.9m and Y is 1.1m (his Pose) with Z being 0.012m I track him with my camera at this Position which is (u=489/v=649) in the image plane. So I do this 8 more times for different Positions to fill my direct linear transformation and to calculate a new calibration matrix, which is actually only calculated not applied in some sort of manner.

Hope this clears up what I am trying to do.


  • $\begingroup$ Made an edit to make it more clear. Anyone knows how to help? I can not find any literature or paper regarding this problem.. $\endgroup$ – mrsing Feb 1 at 12:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.