haart2

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

Описание

пример

[a,h,v,d] = haart2(x) выполняет 2-D дискретное вейвлет (DWT) Хаара матрицы, x. x - 2-D, 3-D или 4-D матрица с четной длиной строки и размерностей столбца. Если x 4-D, размерности являются пространственными по пространственным по каналам по пакетам. Значение Преобразования Хаара всегда вычисляется вдоль размеров строк и столбцов входа. Если размерности строк и столбцов x являются степенями двойки, преобразование Хаара получается до уровня log2(min(size(x,[1 2]))). Если размерность строки или столбца x является четным, но не степенью двойки, преобразование Хаара получается до уровня floor(log2(min(size(x,[1 2])/2))).

haart2 возвращает коэффициенты приближения, a, на самом грубом уровне. haart2 также возвращает массивы ячеек матриц, содержащие горизонтальные, вертикальные и диагональные коэффициенты детализации по уровням. Если 2-D преобразование Хаара вычисляется только на одном уровне, более грубом по разрешению, то h, v, и d являются матрицами. Значение по умолчанию level зависит от количества строк x.

пример

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

пример

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

Примеры

свернуть все

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

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

Figure contains an axes. The axes with title Original Image contains an object of type 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')

Figure contains 2 axes. Axes 1 with title Diagonal Level 1 Details contains an object of type image. Axes 2 with title Horizontal Level 1 Details contains an object of type image.

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

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

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

Figure contains an axes. The axes contains an object of type image.

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

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

Figure contains an axes. The axes contains an object of type image.

Сравните 2-D результаты преобразования Хаара с помощью '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

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

свернуть все

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

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

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

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

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

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

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

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

свернуть все

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

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

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

Примечание: Сгенерированные C и Коды С++ всегда возвращают горизонтальные коэффициенты детализации h в массиве ячеек.

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

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

Примечание: Сгенерированные C и Коды С++ всегда возвращают вертикальные коэффициенты детализации v в массиве ячеек.

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

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

Примечание: Сгенерированные C и Коды С++ всегда возвращают диагональные коэффициенты детализации d в массиве ячеек.

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

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.

Массивы графических процессоров
Ускорите код, запустив на графическом процессорном модуле (GPU) с помощью Parallel Computing Toolbox™.

Введенный в R2016b