EasyCamCalib v1.1

easycamcalib image EasyCamCalib is a matlab software for calibrating a camera using only one image of a planar calibration grid. It is meant for cameras with lenses presenting moderate to high radial distortion (it will not work if the radial distortion is not noticeable). The software requires minimum user intervention (no need of clicking corners), and provides a reliable calibration from a single image. More images can be used for improved accuracy and robustness. Please consult the Quick Reference below, as well as the video tutorial and the users manual. In case you use the software please cite the article below where you can find a detailed explanation about the calibration algorithm.

J. Barreto, J. Roquette, P. Sturm, and F. Fonseca, Automatic camera calibration applied to medical endoscopy, in Proceedings of the 20th British Machine Vision Conference, London, UK, 2009. Download EasyCamCalib v1.1 Download User Manual For more information or support contact rmelo@isr.uc.pt.
Tutorial Video

This tutorial video is a walktrough of the main features of the calibration toolbox. The quick reference bellow is also a good way to start using the software.

Quick Reference for Single Image calibration

To start a calibration launch the EasyCamCalib.m script from the MATLAB prompt. This script is located at the root of the dowloaded directory.

tutorial 1

Choose an image from the listbox by double-clicking on it. It then passes to the calibration listbox. You can add or remove images/directories using the buttons between the listboxes.

image example

Open the options UI either using the edit menu or the option button right above the start button. In the option UI specify the grid size in millimeters and the lens type: Endoscopic/Fish-Eye Lens means that you are using a wide angle lens that projects the content into a circular area of the image and Normal Lens means that you are using a normal lens with low/moderate radial distortion.

image example

After setting the options click on the Start button and a confirmation dialogue will appear. Double check the options and proceed.

image example

The image will now be used to calibrate the camera. You can check the stage of the calibration process by looking at the state bar in the lower left corner. After the calibration is complete you might need to add/remove some misplaced corners. Use the Modify Points tool in the Tools menu and the image will popup so you can edit the points. The key bindings of the modify point tools are described in the User Manual.

image example

After you are sure that no misplaced point were used in the calibration, use the Refinement menu to optimize the results using a non-linear optimizer over the reprojection error.

image example

The calibration results are now presented as the Optimal calibration. You can check the calibration intrinsic parameters, as well as the extrinsic parameters graphical representation. You can further analyse the data as shown in the tutorial video.

Other Calibration Toolboxes

Here are some other very useful calibration toolboxes publicly available:

  • Camera Calibration Toolbox for Matlab - Developed by Jean-Yves Bouguet at California Institute of Technology, it is one of the most used calibration toolboxes for general cameras and is included in many of the calibration solution presented bellow.
  • A fully automatic camera and hand eye calibration - Developed by Christian Wengert from the Swiss Federal Institute of Technology (ETHZ). This is two add-ons for this camera calibration toolbox for Matlab. The first part covers a fully automatic calibration procedure and the second covers the calibration of the camera to a robot-arm or an external marker (known as Hand-Eye calibration). The author provides a complete documentation.
  • Omnidirectional Camera Calibration Toolbox for Matlab - A complete toolbox for calibrating omnidirectional cameras. The author Davide Scaramuzza is at the Swiss Federal Institute of Technology Lausanne (EPFL), Switzerland.
  • Omnidirectional Calibration Toolbox Extension - A great extension toolbox for calibrating omnidirectional cameras. The author Christopher Mei wrote a very complete documentation, with examples. It also contain C codes for undistorting images, and reading the results of the calibration.
  • OpenCV and MatLab Camera Calibration Toolboxes Enhancement - A set of matlab and C code that adds an automatic corner detection to the Matlab Calibration Toolbox. The author, Vladimir Vezhnevets, also offers new enhancements to the OpenCV version of the calibration tool (a more robust corner detection). A complete C++ standalone application may also be found at this location.
  • A Flexible New Technique for Camera Calibration - Developed by Zhengyou Zhang at Microsoft Research. It is a great work on calibration. The software is available online, however, it does not include corner extraction.
  • Tsai Camera Calibration Software - Everyone interested in camera calibration should know about that link. No image corner extraction included.
  • The Multi-Camera Self-Calibration Toolbox - This is a complete Matlab toolbox for calibrating multiple cameras. This toolbox is freely available for non-commercial use. The author is Tomas Svoboda from the Center for Machine Perception of the Czech Technical University .
  • EasyCal: A toolbox for calibrating clusters of cameras - This is a complete Matlab and C toolbox for calibrating a large cluster of cameras without the need to click on multiple images. This toolbox is freely available for non-commercial use, and includes our Camera Calibration Toolbox. The authors of this tool are Joao P. Barreto, Kostas Daniilidis, Nikhil Kelshikar, Rana Molana and Xenophon Zabulis from the Computer and Information Science Department of the University of Pennsylvania.