haart2

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

Описание

пример

[a,h,v,d] = haart2(x) выполняет 2D дискретный вейвлет преобразовывает (DWT) Хаара матрицы, xX 2D, 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 также возвращает массивы ячеек матриц, содержащих горизонталь, вертикальные, и диагональные коэффициенты детали уровнем. Если 2D Преобразование Хаара вычисляется только на одном уровне, более грубом в разрешении, то hV, и 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 contains an axes object. The axes object 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 objects. Axes object 1 with title Diagonal Level 1 Details contains an object of type image. Axes object 2 with title Horizontal Level 1 Details contains an object of type image.

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

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

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

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

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

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

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

Сравните 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, или 4-D матрицы с действительным знаком. Если x 4-D, размерности являются Пространственными Пространственным каналом пакетом. Размеры строки и столбца x должна быть даже длина.

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

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

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

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

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

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

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

свернуть все

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Введенный в R2017b