www.gusucode.com > IPCV_Eval_Kit_R2019a_0ce6858工具箱源码程序matlab > IPCV_Eval_Kit_R2019a_0ce6858/code/demo_files/I2_02_2_cameraCalib_script.m

    %% 僗僋儕僾僩偱偺丄僇儊儔僉儍儕僽儗乕僔儑儞 %%%%%%%%%%
%      GUI偱峴偆偲偒偼丄cameraCalibrator    傪巊梡
clear;clc;close all;imtool close all

%% 夋憸僼傽僀儖柤偺巜掕
images = imageDatastore(fullfile(toolboxdir('vision'), 'visiondata', ...
    'calibration', 'mono'));
imFileNames = images.Files;

%% 夋憸偺昞帵
figure;montage(imFileNames, 'Size', [3 5]);truesize

%% 夋憸撪偺僠僃僢僇乕儃乕僪偺僷僞乕儞偺専弌乮晄揔愗側夋憸偼帺摦揑偵彍嫀乯
[imagePoints, boardSize, imagesUsed] = detectCheckerboardPoints(imFileNames);
imFileNames = imFileNames(imagesUsed);

%% 椺偲偟偰堦偮栚偺夋憸偺寢壥偺昞帵
J = insertMarker(imread(imFileNames{1}), imagePoints(:,:,1), 'o', 'Color', 'green', 'Size', 8);
figure;imshow(J);
  
%% 僐乕僫乕揰偺 幚悽奅偱偺埵抲(world coordinates) 傪寁嶼丗嵟弶偺僐乕僫乕=(0,0)
squareSize = 150;  % 彙栚堦偮偺僒僀僘乮扨埵丗mm乯
worldPoints = generateCheckerboardPoints(boardSize, squareSize);   % boardSize:廲墶偺僠僃僢僇乕悢

%% 僇儊儔僷儔儊乕僞偺悇掕
cameraParams = estimateCameraParameters(imagePoints, worldPoints);    % 僨僼僅儖僩偺扨埵偼 mm

%% 僉儍儕僽儗乕僔儑儞岆嵎偺昞帵
figure; showReprojectionErrors(cameraParams, 'BarGraph');

%% 僇儊儔偺奜晹僷儔儊乕僞偺壜帇壔乮僇儊儔傪屌掕乯僇儊儔偺拞怱偑尨揰
figure; showExtrinsics(cameraParams, 'CameraCentric');

%% 僇儊儔偺奜晹僷儔儊乕僞偺壜帇壔乮僠僃僢僇乕僷僞乕儞傪屌掕乯僠僃僢僇乕僷僞乕儞偺抂偑尨揰
figure; showExtrinsics(cameraParams, 'patternCentric');


%%
% Copyright 2014 The MathWorks, Inc.