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

    %% 嫑娽儗儞僘偱嶣塭偟偨夋憸偺榗曗惓
clear;clc;close all;imtool close all

%% 僇儊儔僉儍儕僽儗乕僔儑儞梡偺夋憸偺妋擣
imageFolder = [toolboxdir('vision'),'\visiondata\calibration\gopro'];
winopen(imageFolder);

%% 傾僾儕働乕僔儑儞偵傛傞嫑娽儗儞僘榗悇掕(R2018a)
squareSize = 29;      % 彙栚堦偮偺僒僀僘乮扨埵丗mm乯
cameraCalibrator(imageFolder,squareSize);
% 僇儊儔儌僨儖傪乽嫑娽乿偵愝掕偟偰乽僉儍儕僽儗乕僔儑儞乿傪幚峴

%% 僇儊儔僷儔儊乕僞悇掕梡偺丄僉儍儕僽儗乕僔儑儞僷僞乕儞偺夋憸巜掕
images = imageDatastore(imageFolder);
figure; montage(images.Files)

%% 夋憸撪偺僠僃僢僇乕儃乕僪偺僷僞乕儞偺専弌
[imagePoints, boardSize] = detectCheckerboardPoints(images.Files);

%% 僐乕僫乕揰偺 幚悽奅偱偺埵抲(world coordinates) 傪寁嶼丗嵟弶偺僐乕僫乕=(0,0)
squareSize = 29;      % 彙栚堦偮偺僒僀僘乮扨埵丗mm乯
worldPoints = generateCheckerboardPoints(boardSize, squareSize);

%% 僇儊儔僷儔儊乕僞偺悇掕
I = readimage(images,1); imageSize = [size(I,1),size(I,2)];  % 夋憸僒僀僘偺庢摼
params = estimateFisheyeParameters(imagePoints, worldPoints, imageSize);

%% 悇掕偟偨奜晹僷儔儊乕僞偺壜帇壔
figure; showExtrinsics(params);

%% 榗曗惓丒寢壥偺昞帵
J1 = undistortFisheyeImage(I, params.Intrinsics,'OutputView','full');
figure; imshowpair(I,J1,'montage'); truesize;

%% 寢壥偺昞帵乮廃埻偺彍嫀偟丄尦偺夋憸偲摨僒僀僘傊乯
J2 = undistortFisheyeImage(I,params.Intrinsics);
figure; imshowpair(I,J2,'montage'); truesize;

%%
% Copyright 2014 The MathWorks, Inc.