wfusimg

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

Смотрите также

|

Представлено до R2006a

Для просмотра документации необходимо авторизоваться на сайте