Fusion двух изображений
XFUS = wfusimg(X1,X2,WNAME,LEVEL,AFUSMETH,DFUSMETH)
[XFUS,TXFUS,TX1,TX2] = wfusimg(X1,X2,WNAME,LEVEL,AFUSMETH,DFUSMETH)
wfusimg(X1,X2,WNAME,LEVEL,AFUSMETH,DFUSMETH,FLAGPLOT)
Принцип сплава изображений с помощью вейвлетов должен объединить разложения вейвлета этих двух оригинальных изображений с помощью методов сплава, применился к коэффициентам приближений и детализирует коэффициенты (см. Zeeuw и Misiti и др.).
XFUS = wfusimg(X1,X2,WNAME,LEVEL,AFUSMETH,DFUSMETH) возвращает сплавленное изображение XFUS, полученный сплавом этих двух оригинальных изображений X1 и X2. Каждый метод сплава, заданный AFUSMETH и DFUSMETH, объединяет в особенном методе, детализированном ниже, разложения X1 и X2, на уровне LEVEL и вейвлет использования WNAME.
AFUSMETH и DFUSMETH задают метод сплава для приближений и деталей, соответственно.
[XFUS,TXFUS,TX1,TX2] = wfusimg(X1,X2,WNAME,LEVEL,AFUSMETH,DFUSMETH) возвращается, в дополнение к матричному XFUS, трем объектам класса WDECTREE, сопоставленный с XFUS, X1 и X2 соответственно (см. @WDECTREE). wfusimg(X1,X2,WNAME,LEVEL,AFUSMETH,DFUSMETH,FLAGPLOT) также строит объекты TXFUS, TX1 и TX2.
Fusmeth обозначает AFUSMETH или DFUSMETH. Доступные методы сплава
Простой — Fusmeth может быть 'max', 'min', 'mean', 'img1', 'img2' или 'rand', который объединяет эти два приближения или детализирует структуры, полученные из X1 и X2, поэлементного путем взятия максимума, минимума, среднего значения, первого элемента, второго элемента или случайным образом выбранного элемента
Зависимый параметра — Fusmeth имеет следующую форму
Fusmeth = struct('name',nameMETH,'param',paramMETH)
где nameMETH может быть
'linear' | |
'UD_fusion' | Вниз сплав |
'DU_fusion' | Вниз сплав |
'RL_fusion' | Оставленный праву сплав |
'UserDEF' | Пользовательский сплав |
Для описания этих опций и параметра paramMETH, смотрите wfusmat.
Следующий трем примерам исследует процесс сплава изображений
Первый пример объединяет два различного продвижения изображений к новому изображению
Второй пример восстанавливает изображение от двух нечетких версий оригинального изображения.
Третий пример показывает, как сделать сплав изображений с помощью определяемого пользователем метода сплава.
% Example 1: Fusion of two different images
% Load two original images: a mask and a bust
load mask; X1 = X;
load bust; X2 = X;
% Merge the two images from wavelet decompositions at level 5
% using db2 by taking two different fusion methods
% fusion by taking the mean for both approximations and details
XFUSmean = wfusimg(X1,X2,'db2',5,'mean','mean');
% fusion by taking the maximum for approximations and the
% minimum for the details
XFUSmaxmin = wfusimg(X1,X2,'db2',5,'max','min');
% Plot original and synthesized images
colormap(map);
subplot(221), image(X1), axis square, title('Mask')
subplot(222), image(X2), axis square, title('Bust')
subplot(223), image(XFUSmean), axis square,
title('Synthesized image, mean-mean')
subplot(224), image(XFUSmaxmin), axis square,
title('Synthesized image, max-min')

% Example 2: Restoration by fusion of fuzzy images
% Load two fuzzy versions of an original image
load cathe_1; X1 = X;
load cathe_2; X2 = X;
% Merge the two images from wavelet decompositions at level 5
% using sym4 by taking the maximum of absolute value of the
% coefficients for both approximations and details
XFUS = wfusimg(X1,X2,'sym4',5,'max','max');
% Plot original and synthesized images
colormap(map);
subplot(221), image(X1), axis square,
title('Catherine 1')
subplot(222), image(X2), axis square,
title('Catherine 2')
subplot(223), image(XFUS), axis square,
title('Synthesized image')

% The synthesized image is a restored version of good
% quality of the common underlying original image.
% Example 3: Fusion using a user defined fusion method.
% This example calls a user fusion method defined by the
% file myfus_FUN.m which is listed below at the end of
% the example.
% load two images of the same size.
load mask; A = X;
load bust; B = X;
% Define the fusion method and call the fusion function
Fus_Method = struct('name','userDEF','param','myfus_FUN');
C = wfusmat(A,B,Fus_Method);
figure;
colormap(pink(220))
subplot(1,3,1), image(A), title('Original Image 1'), axis square
subplot(1,3,2), image(C), title('Fusioned Image'), axis square
subplot(1,3,3), image(B), title('Original Image 2'), axis square

%******************************* % User defined fusion method. * %******************************* function C = myfus_FUN(A,B) D = logical(triu(ones(size(A)))); t = 0.3; C = A; C(D) = t*A(D)+(1-t)*B(D); C(~D) = t*B(~D)+(1-t)*A(~D);
X1 и X2 должны иметь тот же размер (см. wextend, чтобы изменить размер изображений), и представляйте индексированные изображения или изображения истинного цвета, которые являются m-by-n матрицы или m-by-n-by-3 массивы, соответственно.
Для получения дополнительной информации о форматах изображения смотрите страницы с описанием imfinfo и image.
Zeeuw, пополудни (1998), “Вейвлет и сплав изображений”, CWI, Амстердам, март 1998, http:/www.cwi.nl/~pauldz/
Мизити, М.; И. Мизити, Г. Оппенхейм, J.-M. Poggi (2003), “Приложения Les ondelettes et leurs”, Гермес.