www.gusucode.com > IPCV_Eval_Kit_R2019a_0ce6858工具箱matlab程序源码 > IPCV_Eval_Kit_R2019a_0ce6858/code/demo_files/I2_06_1_registration.m
%% 婸搙儀乕僗偺帺摦儗僕僗僩儗乕僔儑儞乮埵抲崌偣乯 clear all; close all; clc; %% 2偮偺夋憸偺撉崬丒昞帵 orig = dicomread('knee1.dcm'); moving = dicomread('knee2.dcm'); figure; imshowpair(moving, orig, 'montage'); %暲傋偰昞帵 %% imshowpair(moving, orig);shg; %廳偹偰昞帵 %% 婸搙儀乕僗偺儗僕僗僩儗乕僔儑儞幚峴丒昞帵 乮曄姺峴楍偑昁梫側応崌偼丄imregtform 傪巊梡乯 [optimizer,metric] = imregconfig('multimodal'); % 僷儔儊僞愝掕 (暿乆偺僨僶僀僗丗堎側傞婸搙斖埻) optimizer.MaximumIterations = 150; % 斀暅夞悢 optimizer.InitialRadius = 0.002; % 弶婜専嶕斖埻 Registered = imregister(moving, orig, 'affine', optimizer, metric); %傾僼傿儞曄姺丗奼戝弅彫丒暯峴堏摦丒夞揮 figure, imshowpair(Registered, orig) % 昞帵 %% [廔椆] % Copyright 2014 The MathWorks, Inc. %% 僔儞僾儖側恾宍1 G1 = zeros([16,20], 'uint8') G1(5, 3:12) = [10:10:100] G2 = zeros([16,20], 'uint8') G2(5, 6:15) = [10:10:100] [optimizer,metric] = imregconfig('monomodal'); % 僷儔儊僞愝掕 tform = imregtform(G2, G1, 'translation', optimizer, metric) tform.T G3 = imwarp(G2, tform, 'OutputView',imref2d(size(G1))); % 寢壥偺壜帇壔 G1(5,:) G2(5,:) G3(3:7,:) %% 僔儞僾儖側恾宍2 (僒僽僺僋僙儖扨埵偺儗僕僗僩儗乕僔儑儞) G1 = zeros([16,20], 'uint8') G1(5, 3:7) = [10:10:50] G1(5, 8:11) = [40:-10:10] G2 = zeros([16,20], 'uint8') G2(5, 6:10) = [5:10:45] G2(5, 11:15) = [45:-10:5] [optimizer,metric] = imregconfig('monomodal'); % 僷儔儊僞愝掕 tform = imregtform(G2, G1, 'translation', optimizer, metric, 'PyramidLevels',1) tform.T G3 = imwarp(G2, tform, 'OutputView',imref2d(size(G1))); % 寢壥偺壜帇壔 G1(5,:) G2(5,:) G3(3:7,:) %%