How To:Calibrate/Undistort a Camera
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.
|