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”, Гермес.