Introduction
To correct the geometrical distortion of an optical system (Camera and Lens) using the MontiVision Camera Calibration Toolbox, follow these steps:
1. Create a calibration pattern (Even x Odd).
2. Create a MontiVision calibration parameter file (*.mvc) for you camera/lens combination using the MV CamCalib Application or the MV Camera Calibration filter directly.
3. Insert the MV Camera Undistortion filter to your applications filter configuration.
4. Load the correct calibration parameter file (*.mvc) into the MV Camera Undistortion filter.
1. Create a calibration pattern
The MV Camera Calibration filter uses images of a chessboard pattern to calculate the parameters of the optical system. Make sure to use a pattern with Even x Odd or Odd x Even number of rectangles.
![]()
10 x 7 Chessboard
The MV CamCalib application provides a print function for chessboards. The chessboard size should at least 6 x 5 squares.
2. Create a camera parameter file
This is the most important part when calibrating a camera. You may either use the MV Camera Calibration DirectShow filter or the MV CamCalib application to create a calibration parameter file. We highly recommend to utilize the MV CamCalib application.
Preparation
First of all the hardware to be calibrated has to be selected.
The next step is to provide some information about the optical system. This includes camera type and label, chip dimension, lens label and focal length. This data is used to calculate a default parameter set and helps you later to choose the correct calibration parameters in the MV Camera Undistortion DirectShow filter.
The information is not absolutely necessary to calculate the default parameters, but if you have to deal with more than a single camera/lens combination it is reasonable to use the description to be able to assigne the calibration parameters to the appropriate optical system.
Automatic Calibration
The MontiVision CamCalib application provides all the functionality required to calculate the camera parameters from a couple of calibration pattern images.
Set the column and row count in the Target Dimension group to the corresponding number of rectangles in your chessboard pattern. The Image Count parameter defines the number of images used to calculate the camera parameters. At least four images are required in order to get valid camera parameters, but fifteen or more images are recommended. The Image Delay parameter is the minimum time in seconds between the capturing of successive calibration images. This gives you time to modify the camera or pattern position.
To start the auto calibration process, press the Start button. From now on the application tries to record calibration pattern images. The camera parameters will be calculated after the number of required images is captured. If you prefer to choose the images manually, disable the Automode checkbox and press the Get Image everytime you'd like to capture an image. Capture the chessboard from as many different camera perspectives as possible, but do not rotate the chessboard or the camera. Rotation may result in invalid camera parameters.
The following set is just an example to give you a rough idea how a set of valid calibration images could look like.
|
|
|
|
|
|
The application shows the the calibration results in the Calibration Status group after calculating the camera parameters.
Enable the Undistortion checkbox in order to visually verify the camera parameters. Use the Save button to save the camera parameters into a MontiVision calibration parameter file (*.mvc).
Manual Calibration
The second and harder method to retrieve the camera parameters is to do the camera calibration manually. To do so, you need to press the Reset button to calculate default parameter for the camera. Create a chessboard (or similiar) pattern and align the camera perpendiculary in front of the pattern. The pattern helps you to see the distortion of your optical system. Additinally you can activate the applications grid functionality. Press the Grid button in order to open the grid dialog.
Enable the grid and adjust it to the lower left corner of your pattern.
To finally find the right camera parameters, open the Adjustment dialog.
The Reset button sets the camera parameters to their default values. Make sure that the Undistortion function is enabled, otherwise you won't see the calibrated output. Now adjust barrel distortion, perspective, focal length and principal point using the sliders. The spin controls are used to change the paramter scale in case this is required. Once you finished the adjustment, you can save the camera parameters into a MontiVision calibration parameter file (*.mvc) using the Save button.
3. Insert the MV Camera Undistortion filter
To apply the camera calibration parameters to your camera within your applications, you have to utilize the MV Camera Undistortion DirectShow filter inside your filter configuration. The filter has to be placed directly behind your video source filter (Or behind a decoder/color space converter in case this is required).
Example:
4. Load a camera parameter file into the MV Camera Undistotion filter
The MV Camera Undistortion filter doesn't save the camera calibration parameter or the path to the camera calibration parameter file (*-mvc) to filter graph configuration files (*.mvp). Therefore an application has to load a valid calibration parameter file for the actually selected camera using the IMVCameraUndistortion::LoadCameraParameter method. The CamUndist sample demonstrates how to use the MV Camera Undistortion filter within an application.