haart2

2D Вейвлет - преобразование Хаара

Синтаксис

[a,h,v,d] = haart2(x)
[a,h,v,d] = haart2(x,level)
[a,h,v,d] = haart2(___,integerflag)

Описание

пример

[a,h,v,d] = haart2(x) выполняет 2D дискретный вейвлет преобразовывает (DWT) Хаара матрицы, x. haart2 возвращает коэффициенты приближения, a, на самом грубом уровне. haart2 также возвращает массивы ячеек матриц, содержащих горизонталь, вертикальные, и диагональные коэффициенты детали уровнем. Если 2D Преобразование Хаара вычисляется только на одном уровне, более грубом в разрешении, то h, v и d являются матрицами. level по умолчанию зависит от количества строк x.

пример

[a,h,v,d] = haart2(x,level) выполняет 2D Преобразование Хаара вниз к заданному уровню.

пример

[a,h,v,d] = haart2(___,integerflag) задает, как 2D Преобразование Хаара обрабатывает данные с целочисленным знаком, с помощью любого из предыдущих синтаксисов.

Примеры

свернуть все

Получите 2D Преобразование Хаара 2D данных и постройте его диагональные и горизонтальные детали уровня 1.

load xbox;
[a,h,v,d] = haart2(xbox);
imagesc(xbox)
title('Original Image')

figure
subplot(2,1,1)
imagesc(d{1})
title('Diagonal Level 1 Details')
subplot(2,1,2)
imagesc(h{1})
title('Horizontal Level 1 Details')

Покажите эффект ограничения максимального уровня 2D Преобразования Хаара на изображении.

Загрузите и отобразите изображение оператора.

im = imread('cameraman.tif');
imagesc(im)

Получите 2D Преобразование Хаара к уровню 2 и просмотрите приближение уровня 2.

[a2,h2,v2,d2] = haart2(im,2);
imagesc(a2)

Сравните 2D результаты Преобразования Хаара с помощью флага 'noninteger' по умолчанию и флага 'integer'. Изображение оператора является данными uint8, таким образом, его максимальное значение 255.

Получите Преобразование Хаара по умолчанию. Коэффициент детали приближения вне области значений от 0 до 255.

im = imread('cameraman.tif');
[a,h,v,d] = haart2(im);
a
a = 3.0393e+04

Получите Преобразование Хаара, ограничив его целочисленными значениями. Деталь приближения является целым числом и в области значений данных об оригинальном изображении.

[a,h,v,d] = haart2(im,'integer');
a
a = 119

Входные параметры

свернуть все

Входной сигнал, заданный как 2D или 3-D матрица действительных значений. Если x 3-D, третья размерность x должна равняться 3. Размеры строки и столбца x должны быть даже длиной.

Максимальный уровень, к которому можно выполнить 2D Преобразование Хаара, заданное как положительное целое число. Значение по умолчанию зависит от длины входного сигнала, x.

  • Если оба, размеры строки и столбца x являются степенями двойки, 2D Преобразование Хаара, получены вниз к level log2(min(size(x))).

  • Если оба, которые размеры строки и столбца x даже, но по крайней мере один не степень двойки, level, равны floor(log2(min(size(x)/2))).

Если level больше, чем 1, то h, v и d являются массивами ячеек. Если level равен 1, то h, v и d являются матрицами.

Обработка данных с целочисленным знаком, заданная или как 'noninteger' или как 'integer'. 'noninteger' не сохраняет данные с целочисленным знаком в 2D Преобразовании Хаара, и 'integer' сохраняет его. Опция 'integer' применяется, только если все элементы входа, x, являются целыми числами. Для входа с целочисленным знаком haart2 возвращает коэффициенты вейвлета с целочисленным знаком. И для 'noninteger' и для 'integer', однако, 2D алгоритм Преобразования Хаара использует арифметику с плавающей точкой. Типом данных выходных параметров a, h, v, и d, всегда является double.

Выходные аргументы

свернуть все

Коэффициенты приближения, возвращенные как скаляр или матрица коэффициентов, в зависимости от уровня, к которому вычисляется преобразование. Приближение или масштабирование, коэффициенты являются lowpass представлением входа. На каждом уровне коэффициенты приближения разделены на более грубое приближение и детализируют коэффициенты.

Типы данных: double

Горизонтальные коэффициенты детали уровнем, возвращенным как матричный или массив ячеек матриц. Если level больше, чем 1, h является массивом ячеек. Если level равен 1, 2D Преобразование Хаара вычисляется только на одном уровне, более грубом в разрешении, и h является матрицей.

Типы данных: double

Вертикальные коэффициенты детали уровнем, возвращенным как матричный или массив ячеек матриц. Если level больше, чем 1, v является массивом ячеек. Если level равен 1, 2D Преобразование Хаара вычисляется только на одном уровне, более грубом в разрешении, и v является матрицей.

Типы данных: double

Диагональные коэффициенты детали уровнем, возвращенным как матричный или массив ячеек матриц. Если level больше, чем 1, d является массивом ячеек. Если level равен 1, 2D Преобразование Хаара вычисляется только на одном уровне, более грубом в разрешении, и d является матрицей.

Типы данных: double

Введенный в R2017b