Вейвлет-преобразование для N измерений

Я наткнулся на этот удивительный ответ . Применяя MATLAB idwt2 несколько раз , я выполнил его, чтобы понять его сам. Однако я не могу понять, как использовать то же самое для работы с изображением RGB. Итак, у меня есть 3 вопроса.

  1. Как можно применить код к изображению RGB с отображением только преобразованного изображения на выходе вместе с высокочастотными и низкочастотными компонентами в строке и столбце, можно ли просмотреть объединение всех компонентов в единое изображение? Я знаю, что мне нужно поставить оператор cat, но я не понимаю, как это сделать.

  2. Во-вторых, я также получаю лабиринтное изображение! Я в недоумении, так как не могу понять причину. Я также приложил тот же код к заявлению, показывающему, как было создано это изображение.

    3. Что означает термин db1 в сигнатуре функции dwt ?

] КОД:

    load woman;             % Load image data
%startImage=imread('pic_rgb.jpg');  % IF I WANT TO WORK WITH RGB IMAGE
    nLevel = 3;             % Number of decompositions
    nColors = size(map,1);  % Number of colors in colormap
    cA = cell(1,nLevel);    % Approximation coefficients
    cH = cell(1,nLevel);    % Horizontal detail coefficients
    cV = cell(1,nLevel);    % Vertical detail coefficients
    cD = cell(1,nLevel);    % Diagonal detail coefficients
    startImage = X;
    for iLevel = 1:nLevel,
      [cA{iLevel},cH{iLevel},cV{iLevel},cD{iLevel}] = dwt2(startImage,'db1');



     startImage = cA{iLevel};
    end

    figure;colormap(map);
    imagesc(dwt2(startImage,'db1')); %THIS GIVES THE MAZED IMAGE INSTEAD OF THE TRANSFORMED IMAGE
    figure;
    tiledImage = wcodemat(cA{nLevel},nColors);
    for iLevel = nLevel:-1:1,
     tiledImage = [tiledImage                   wcodemat(cH{iLevel},nColors); ...
                    wcodemat(cV{iLevel},nColors) wcodemat(cD{iLevel},nColors)];

    end
    figure;

    imshow(tiledImage,map);

    %reconstruct
    fullRecon = cA{nLevel};
    for iLevel = nLevel:-1:1,
      fullRecon = idwt2(fullRecon,cH{iLevel},cV{iLevel},cD{iLevel},'db1');
    end
    partialRecon = cA{nLevel};
    for iLevel = nLevel:-1:1,
      partialRecon = idwt2(partialRecon,[],[],[],'db1');
    end
    figure;
    imshow([X fullRecon; partialRecon zeros(size(X))],map,...
           'InitialMagnification',50);

7
задан Community 23 May 2017 в 12:30
поделиться