-
Notifications
You must be signed in to change notification settings - Fork 0
/
camera_cali_script.m
61 lines (51 loc) · 3.58 KB
/
camera_cali_script.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
% Auto-generated by cameraCalibrator app on 14-Apr-2019
%-------------------------------------------------------
% Define images to process
imageFileNames = {'C:\Turtlebot_pro\Turtlebot_project-matlab_pro_file\documents\Calibration_images\01.png',...
'C:\Turtlebot_pro\Turtlebot_project-matlab_pro_file\documents\Calibration_images\02.png',...
'C:\Turtlebot_pro\Turtlebot_project-matlab_pro_file\documents\Calibration_images\03.png',...
'C:\Turtlebot_pro\Turtlebot_project-matlab_pro_file\documents\Calibration_images\04.png',...
'C:\Turtlebot_pro\Turtlebot_project-matlab_pro_file\documents\Calibration_images\05.png',...
'C:\Turtlebot_pro\Turtlebot_project-matlab_pro_file\documents\Calibration_images\06.png',...
'C:\Turtlebot_pro\Turtlebot_project-matlab_pro_file\documents\Calibration_images\07.png',...
'C:\Turtlebot_pro\Turtlebot_project-matlab_pro_file\documents\Calibration_images\08.png',...
'C:\Turtlebot_pro\Turtlebot_project-matlab_pro_file\documents\Calibration_images\09.png',...
'C:\Turtlebot_pro\Turtlebot_project-matlab_pro_file\documents\Calibration_images\010.png',...
'C:\Turtlebot_pro\Turtlebot_project-matlab_pro_file\documents\Calibration_images\11.png',...
'C:\Turtlebot_pro\Turtlebot_project-matlab_pro_file\documents\Calibration_images\12.png',...
'C:\Turtlebot_pro\Turtlebot_project-matlab_pro_file\documents\Calibration_images\14.png',...
'C:\Turtlebot_pro\Turtlebot_project-matlab_pro_file\documents\Calibration_images\15.png',...
'C:\Turtlebot_pro\Turtlebot_project-matlab_pro_file\documents\Calibration_images\16.png',...
'C:\Turtlebot_pro\Turtlebot_project-matlab_pro_file\documents\Calibration_images\17.png',...
'C:\Turtlebot_pro\Turtlebot_project-matlab_pro_file\documents\Calibration_images\18.png',...
'C:\Turtlebot_pro\Turtlebot_project-matlab_pro_file\documents\Calibration_images\19.png',...
'C:\Turtlebot_pro\Turtlebot_project-matlab_pro_file\documents\Calibration_images\20.png',...
'C:\Turtlebot_pro\Turtlebot_project-matlab_pro_file\documents\Calibration_images\21.png',...
'C:\Turtlebot_pro\Turtlebot_project-matlab_pro_file\documents\Calibration_images\113.png',...
};
% Detect checkerboards in images
[imagePoints, boardSize, imagesUsed] = detectCheckerboardPoints(imageFileNames);
imageFileNames = imageFileNames(imagesUsed);
% Read the first image to obtain image size
originalImage = imread(imageFileNames{1});
[mrows, ncols, ~] = size(originalImage);
% Generate world coordinates of the corners of the squares
squareSize = 23; % in units of 'millimeters'
worldPoints = generateCheckerboardPoints(boardSize, squareSize);
% Calibrate the camera
[cameraParams, imagesUsed, estimationErrors] = estimateCameraParameters(imagePoints, worldPoints, ...
'EstimateSkew', false, 'EstimateTangentialDistortion', false, ...
'NumRadialDistortionCoefficients', 2, 'WorldUnits', 'millimeters', ...
'InitialIntrinsicMatrix', [], 'InitialRadialDistortion', [], ...
'ImageSize', [mrows, ncols]);
% View reprojection errors
h1=figure; showReprojectionErrors(cameraParams);
% Visualize pattern locations
h2=figure; showExtrinsics(cameraParams, 'CameraCentric');
% Display parameter estimation errors
displayErrors(estimationErrors, cameraParams);
% For example, you can use the calibration data to remove effects of lens distortion.
undistortedImage = undistortImage(originalImage, cameraParams);
% See additional examples of how to use the calibration data. At the prompt type:
% showdemo('MeasuringPlanarObjectsExample')
% showdemo('StructureFromMotionExample')