exponenta event banner

haart2

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

Описание

пример

[a,h,v,d] = haart2(x) выполняет 2-ю дискретную небольшую волну преобразовывает (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-е преобразование Хаара вычислено только на одном уровне, более грубом в резолюции, то h, v, и d являются матрицами. Дефолт level зависит от количества строк x.

пример

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

пример

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

Примеры

свернуть все

Получите 2-го Хаара, преобразовывают 2-х данных и готовят его диагональные и горизонтальные детали уровня 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-го Хаара преобразовывает на изображении.

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

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

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

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

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

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

Сравните 2-й Хаар преобразовывают результаты, используя дефолт '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-го Хаара, преобразовывает, определенный как положительное целое число. Значение по умолчанию зависит от длины входного сигнала, x.

  • Если оба размера строк и столбцов x полномочия два, 2-е преобразование Хаара получено вниз к 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-м Хааре, преобразовывают, и 'integer' сохраняет его. 'integer' опция применяется только в том случае, если все элементы ввода x, являются целыми числами. Для целочисленных входных данных haart2 возвращает целочисленные вейвлет-коэффициенты. Для обоих 'noninteger' и 'integer', однако, 2-й Хаар преобразовывают использование алгоритма арифметика с плавающей запятой. Если x является входом с одной точностью, числовым типом коэффициентов преобразования Хаара является единичная точность. Для всех остальных числовых типов числовым типом коэффициентов является двойная точность.

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.

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

Представлен в R2016b