Если вы помните, db1
- Haar Wavelet. Haar Wavelet принимает либо среднее значение пикселей в локальных окнах для коэффициентов аппроксимации (или полосы LL), либо разницу пикселей в локальных окнах для подробных коэффициентов (или диапазонов LH, HL и HH).
Следует иметь в виду, что только указанное входное изображение состоит из двух интенсивностей: 0 и 255. Кроме того, вы устанавливаете квадратную сетку в пределах этого изображения как 255 и равномерно сформированы.
Для замкнутости, это то, что ваше тестовое изображение выглядит следующим образом:
Это равномерно форма объект внутри квадрата изображения важно как часть рассуждений, почему вы не получаете вывода для подробных изображений (HL, LH и HH).
Лучший способ описать, почему вы видите вывод для db2
, а не db1
, можно визуально отобразить.
Это слайд из University of Toronto's CS 320: Introduction to Visual Computing course, в частности, Discrete Wavelet Transform lecture:
Вы хорошо знаете, что когда вы берете 2D DWT, вы производите 4 суб-изображения, которые являются наполовину разрешение из оригинальное изображение. Первый выход dwt2
- это коэффициенты аппроксимации, где каждый выходной пиксель является средним размером окна 2 x 2. Остальные выходы (второй, третий и четвертый) - это окна с деталями, которые берут два пикселя в окне и вычитают их с двумя другими пикселями в окне.
Таким образом, причина, почему вы не получать выход с db1
происходит потому, что все ваши расчеты для детализации изображения будут отменить аут. В частности, вы получите 2 x 2 окна либо полностью 0, либо полностью 255, а при вычислении подробных изображений вы получите 0s для вывода независимо. Вы должны добавить два значения 0 или два 255 значения, и вы вычтите эти два значения 0 или 255 значений соответственно, что приведет к выводу 0 независимо от.
Вейвлет db2
Вейвлет представляет собой более сложное преобразование, которое представляет собой взвешенную сумму неравномерных коэффициентов, и поэтому вы, несомненно, получите выходы для подробных изображений, а не простое различие в окнах 2 x 2.
Я хотел бы подчеркнуть, что если у вас есть более сложная форма, которая неоднородна, db1
, конечно, не даст вам нулевой выхода. Попробуйте на любом тестовом изображении, которое поставляется с MATLAB, например, с cameraman.tif
.
Надеюсь, это поможет!