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

    % 弶婜壔
clear; clc, close all, imtool close all;

%% Step 1: 夋憸偺撉崬傒\帵
fixed  = imread('I2_06_2_stitch1.png');
moving = imread('I2_06_2_stitch2.png');
figure; imshowpair(moving,fixed,'montage')

%% Step 2: 埵憡憡娭傪梡偄偨埵抲偢傟偺専弌
%          乮婸搙儀乕僗偺嵟揔壔庤朄傛傝戝偒側偢傟偵嫮偔崅懍乯
%          乮婸搙儀乕僗偺嵟揔壔庤朄偺弶婜抣偵巊梡乯
tform = imregcorr(moving, fixed, 'translation')      % 偙偙偱偼暯峴堏摦偺傒傪壖掕
tform.T                                              % 摼傜傟偨曄姺峴楍

%% Step 3: 2偮偺夋憸偺崌惉
Rfixed = imref2d(size(fixed));
[movingReg, Rreg] = imwarp(moving,tform);               % 2枃栚偺夋憸傪婔壗妛揑曄姺
panorama = imfuse(movingReg,Rreg,fixed,Rfixed,'blend'); % 崌惉
figure; imshow(panorama);

%% Step 4: 婸搙傪巊偭偨嵟揔壔儀乕僗偺埵抲崌偣傾儖僑儕僘儉傪梡偄
%           旝挷惍乮戝偒偔偢傟偨夋憸偵懳偟偰偼嬯庤)
%           埵憡憡娭偱媮傔偨曄姺峴楍傪弶婜抣偲偟偰巊梡
[optimizer,metric] = imregconfig('monomodal');
movingGray = rgb2gray(moving);
fixedGray  = rgb2gray(fixed);
tformOptim = imregtform(movingGray,fixedGray,'translation',optimizer,metric,'InitialTransformation',tform);
tformOptim.T

[movingRegOptim,RregOptim] = imwarp(moving,tformOptim);
panoramaOptim = imfuse(movingRegOptim,RregOptim,fixed,Rfixed,'blend');
figure; imshow(panoramaOptim);

%% 


%% Copyright 2015 The MathWorks, Inc.