1.輸入數據
2.Matlab代碼
clc
clear
close all;
%%
%實現多焦距圖像配準與融合
%%
%1.read image
fixedPath = '1.jpg';
movePath = '2.jpg';
fixed = imread(fixedPath);
moving = imread(movePath);
if ndims(fixed)==3
fixed = rgb2gray(fixed);
end
if ndims(moving)==3
moving = rgb2gray(moving);
end
% figure, imshow(fixed),impixelinfo;
% figure, imshow(moving),impixelinfo;
figure, imshowpair(moving, fixed, 'Scaling','joint');
title('Not Registered');
%%
%2.register by MI
t1=clock;
[optimizer, metric] = imregconfig('multimodal');
optimizer.InitialRadius = 0.009;
optimizer.Epsilon = 1.5e-4;
optimizer.GrowthFactor = 1.01;
optimizer.MaximumIterations = 300;
movingRegistered = imregister(moving, fixed, 'affine', optimizer, metric);
t2=clock;
disp(etime(t2,t1));
figure
imshowpair(fixed, movingRegistered,'Scaling','joint');
title('Registered');
%%
%3.圖像融合
XFUS = wfusimg(fixed,movingRegistered,'sym4',5,'max','max');
%歸一化
XFUS = uint8(((XFUS - min(min(XFUS)))/(max(max(XFUS)) - min(min(XFUS))))*255);
figure,imshow(XFUS);
title('ImageFuse');
3.配準結果