Непрореживание дискретного вейвлет-преобразования с использованием Matlab и Python

Примерно на основе рисунка выше: введите здесь описание изображения

Мне нужно сделать такой массив:

array = [(image),(1,ll),(1,lh),(1,hl),(2,ll),(2,lh),(2,hl)]

Здесь изображение представляет собой пустой двумерный массив, а остальные элементы массива являются компонентами, полученными с помощью недецимируемого дискретного вейвлет-преобразования, которые также являются двумерными массивами.

Например,

(1,ll) is level 1 component,channel low-high
(2,hl) is level 2 component, channel high-low

С Python 2.7 это довольно просто.

udwt = np.asarray(pywt.swt2(image, 'haar',2))
array = [image,
         udwt[0][0] ,    #1,ll
         udwt[0][1][0],  #1,lh
         udwt[0][1][1],  #1,hl
         udwt[1][0] ,    #2,ll
         udwt[1][1][0],  #2,lh
         udwt[1][1][1]]  #2,hl

Однако я не могу сделать это в Matlab.

udwt = ndwt2(image,2,'haar');

Компоненты будут находиться в udwt.dec (поле dec структуры udwt), из 1 to 7.

Создание параллелей из кода Python:

Python                               Matlab
udwt[0][0]                         My question
udwt[0][1][0]                      udwt.dec{5}
udwt[0][1][1]                      udwt.dec{6}
udwt[1][0]                         udwt.dec{1}
udwt[1][1][0]                      udwt.dec{2}
udwt[1][1][1]                      udwt.dec{3}

(Python's function gives components from level 1 to level n.
 Matlab's function gives components from level n to level 1.(reverse order))

Проблема в том, что я не получаю компонент низкий-низкий (компонент аппроксимации) 1-го уровня в Matlab (1,ll).

При использовании ndwt2 для двухуровневой декомпозиции это дает мне только одно приближение и 3 детали для каждого уровня (lh, hl, hh).

В то время как в Python pywt.swt2(), я получаю приближение для каждого уровня и 3 детали (lh, hl, hh) для каждого уровня.

так где мне найти это 1,ll в Matlab?

Я считаю, что udwt.dec{1} равно 2, ll (минимум-минимум 2-го уровня вместо 1-го уровня на основе ответа здесь.

dec{ 1 }        approximation level n

Должен ли я использовать какую-то другую функцию вместо ndwt2?


person Nancy    schedule 27.01.2016    source источник