最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

haart2

2 次元 Haar ウェーブレット変換

説明

[a,h,v,d] = haart2(x) は、行列 x の 2 次元 Haar 離散ウェーブレット変換 (DWT) を実行します。haart2 は、最も粗いレベルの Approximation 係数 a を返します。haart2 は、各レベルの水平方向、垂直方向、および対角方向の Detail 係数を含む行列の cell 配列も返します。2 次元 Haar 変換が分解能が粗い 1 つのレベルでのみ計算された場合、hv、および d は行列になります。既定の levelx の行数に応じて異なります。

[a,h,v,d] = haart2(x,level) は、指定されたレベルまで下げて 2 次元 Haar 変換を実行します。

[a,h,v,d] = haart2(___,integerflag) では、前の構文のいずれかを使用して、2 次元 Haar 変換での整数値のデータの処理方法を指定します。

すべて折りたたむ

2 次元データの 2 次元 Haar 変換を求め、対角方向および水平方向のレベル 1 の Detail をプロットします。

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')

2 次元 Haar変換の最大レベルを制限した場合のイメージに対する影響を表示します。

カメラマンのイメージを読み込んで表示します。

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

レベル 2 の 2 次元 Haar 変換を求め、レベル 2 の Approximation を表示します。

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

既定の 'noninteger' フラグを使用した場合と 'integer' フラグを使用した場合の 2 次元 Haar 変換の結果を比較します。カメラマンのイメージは uint8 データであるため、最大値は 255 です。

既定の Haar 変換を求めます。Approximation の Detail 係数は 0 から 255 までの範囲外になります。

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

整数値に制限して Haar 変換を求めます。Approximation の Detail は整数になり、元のイメージ データの範囲内になります。

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

入力引数

すべて折りたたむ

入力信号。実数値の 2 次元または 3 次元の行列として指定します。x が 3 次元の場合、x の 3 番目の次元は 3 と等しくなければなりません。x の行と列のサイズは偶数長でなければなりません。

2 次元 Haar 変換を実行する最大レベル。正の整数として指定します。既定値は、入力信号 x の長さに応じて異なります。

  • x の行と列の両方のサイズが 2 のべき乗である場合、level log2(min(size(x))) まで下げて 2 次元 Haar 変換が求められます。

  • x の行と列の両方のサイズが偶数で、少なくとも一方が 2 のべき乗でない場合、levelfloor(log2(min(size(x)/2))) と等しくなります。

level が 1 より大きい場合、hv、および d は cell 配列になります。level が 1 と等しい場合、hv、および d は行列になります。

整数値のデータの処理。'noninteger' または 'integer' のいずれかとして指定します。'noninteger' は 2 次元 Haar 変換で整数値のデータを保持せず、'integer' は保持します。'integer' オプションは、入力 x のすべての要素が整数である場合のみ適用されます。整数値の入力について、haart2 は整数値のウェーブレット係数を返します。ただし、'noninteger''integer' のどちらの場合も、2 次元 Haar 変換のアルゴリズムでは浮動小数点演算が使用されます。出力 ahv、および d のデータ型は常に double です。

出力引数

すべて折りたたむ

Approximation 係数。変換が計算されるレベルに応じて、係数のスカラーまたは行列として返されます。Approximation (スケーリング) 係数は入力のローパス表現です。各レベルにおいて、Approximation 係数は粗い Approximation 係数と Detail 係数に分けられます。

データ型: double

各レベルの水平方向の Detail 係数。行列または行列の cell 配列として返されます。level が 1 より大きい場合、h は cell 配列になります。level が 1 と等しい場合、2 次元 Haar 変換は分解能が粗い 1 つのレベルでのみ計算され、h は行列になります。

データ型: double

各レベルの垂直方向の Detail 係数。行列または行列の cell 配列として返されます。level が 1 より大きい場合、v は cell 配列になります。level が 1 と等しい場合、2 次元 Haar 変換は分解能が粗い 1 つのレベルでのみ計算され、v は行列になります。

データ型: double

各レベルの対角方向の Detail 係数。行列または行列の cell 配列として返されます。level が 1 より大きい場合、d は cell 配列になります。level が 1 と等しい場合、2 次元 Haar 変換は分解能が粗い 1 つのレベルでのみ計算され、d は行列になります。

データ型: double

R2016b で導入