Main Content

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

cwtft2

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

説明

cwtstruct = cwtft2(X) は、X の 2 次元連続ウェーブレット変換 (CWT) を返します。

cwtstruct = cwtft2(___,Name=Value) では、前の構文の入力引数に加えて、名前と値のペアの引数を 1 つ以上使用してオプションを指定します。

すべて折りたたむ

星のイメージを読み込んで表示します。

img = imread("star.jpg");
image(img)

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

既定の関数の値を使用して星のイメージの 2 次元 CWT を求めます。係数の大きさを最も細かいスケールで可視化します。

cwtout = cwtft2(img);
sca = 1;
imagesc(abs(cwtout.cfs(:,:,1,1,sca)))

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

この例では、異方性ウェーブレットが特徴の方向を識別する一方で、等方性ウェーブレットがどのように特徴の方向を識別しないかを示します。この例では、Marr 等方性ウェーブレットと指向性 (異方性) コーシー ウェーブレットを使用します。

六角形のイメージを読み込んで表示します。

img = imread("hexagon.jpg");
imagesc(img)

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

Marr ウェーブレットとコーシー ウェーブレットの両方を使用して、イメージの 2 次元 CWT を求めます。スケールを 1 に指定します。角度のベクトルを π/8 単位で 0 ~ 15π/8 ラジアンとなるように指定します。

cwtScales = 1;
cwtAngles = 0:pi/8:2*pi-pi/8;

cwtCauchy = cwtft2(img,wavelet="cauchy",scales=cwtScales, ...
    angles=cwtAngles);
cwtMarr = cwtft2(img,wavelet="marr",scales=cwtScales, ...
    angles=cwtAngles);

角度は 16 個あります。連続する 2 つの角度におけるスケール 1 の 2 次元 CWT 係数の振幅を可視化します。Marr 等方性ウェーブレットを使用すると特徴の方向が識別されないが、コーシー ウェーブレットでは識別されることを確認します。

angz = {"0", "pi/8", "pi/4", "3pi/8", "pi/2", "5pi/8", "3pi/4", ...
    "7pi/8","pi", "9pi/8", "5pi/4", "11pi/8", "3pi/2", ...
    "13pi/8" "7pi/4", "15pi/8"};

indexAngle1 = 7;
indexAngle2 = 8;

tiledlayout(2,2)
for k=[indexAngle1 indexAngle2]
    nexttile
    imagesc(abs(cwtMarr.cfs(:,:,1,1,k)))
    title(["Marr Wavelet at " angz(k) "radians"])
    nexttile
    imagesc(abs(cwtCauchy.cfs(:,:,1,1,k)))
    title(["Cauchy Wavelet at " angz(k) "radians"])
end

Figure contains 4 axes objects. Axes object 1 with title Marr Wavelet at 3pi/4 radians contains an object of type image. Axes object 2 with title Cauchy Wavelet at 3pi/4 radians contains an object of type image. Axes object 3 with title Marr Wavelet at 7pi/8 radians contains an object of type image. Axes object 4 with title Cauchy Wavelet at 7pi/8 radians contains an object of type image.

Marr 等方性ウェーブレットを使用して求めた 2 次元 CWT 係数の振幅を任意の 2 つの角度で可視化します。ウェーブレットが特徴の方向を識別しないことを確認します。

indexAngle1 = 2;
indexAngle2 = 7;

tiledlayout(1,2)
for k=[indexAngle1 indexAngle2]
    nexttile
    imagesc(abs(cwtMarr.cfs(:,:,1,1,k)))
    title(["Marr Wavelet at " angz(k) "radians"])
end

Figure contains 2 axes objects. Axes object 1 with title Marr Wavelet at pi/8 radians contains an object of type image. Axes object 2 with title Marr Wavelet at 3pi/4 radians contains an object of type image.

入力引数

すべて折りたたむ

入力データ。数値配列として指定します。X は、インデックス付きイメージを表す M 行 N 列の配列かトゥルーカラー イメージを表す M×N×3 の配列です。

データ型: double | single | uint8 | uint16

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名で、Value は対応する値です。名前と値の引数は他の引数の後に指定しなければなりませんが、ペアの順序は重要ではありません。

例: wavelet="paul",scales=2.^(0:5) は、Paul ウェーブレットおよびスケールのベクトルを指定します。

R2021a より前では、コンマを使用して名前と値をそれぞれ区切り、Name を引用符で囲みます。

例: "wavelet","paul","scales",2.^(0:5) は、Paul ウェーブレットおよびスケールのベクトルを指定します。

2 次元 CWT で使用するラジアン単位の角度。スカラーまたはベクトルとして指定します。

例: angles=[0 pi/2 pi]

2 次元 CWT で使用する正規化。次のいずれかとして指定します。

  • "L2" — 指定されたスケールでの解析ウェーブレットのフーリエ変換が、対応するスケールで乗算されます。"L2" は既定の正規化です。

  • "L1" — 解析ウェーブレットのフーリエ変換が、すべてのスケールにおいて 1 で乗算されます。

  • "L0" — 指定されたスケールでの解析ウェーブレットのフーリエ変換が、対応するスケールの 2 乗で乗算されます。

例: norm="L1"

2 次元 CWT で使用するスケール。実数値のスカラーまたはベクトルとして指定します。スケールは 1 以上でなければなりません。

例: scales=[1 2 3 5 8]

データ型: double | single

解析ウェーブレット。文字ベクトル、string スカラー、構造体、または cell 配列として指定します。cwtftinfo2 は、サポートされているウェーブレットおよび関連パラメーターの包括的な一覧を提供します。

wavelet を構造体として指定する場合、その構造体には次の 2 つのフィールドが含まれていなければなりません。

  • name — サポートされているウェーブレットに対応する文字ベクトルまたは string スカラー。

  • param — ウェーブレットに依存するオプション パラメーターが格納された cell 配列。オプション パラメーターを指定したくない場合は、フィールドで空の cell 配列を使用します。

wavelet を cell 配列 wav として指定する場合、その cell 配列には次の 2 つの要素が含まれていなければなりません。

  • wav{1} — サポートされているウェーブレットに対応する文字ベクトルまたは string スカラー。

  • wav{2} — ウェーブレットのパラメーターをもつ cell 配列。

例: wavelet={"morlet",{6,1,1}} は、Morlet ウェーブレットを cell 配列として指定します。

例: wavelet=struct("name","paul","param",{{2}}) は、Paul ウェーブレットを構造体配列として指定します。

出力引数

すべて折りたたむ

2 次元 CWT。次のフィールドをもつ構造体として返されます。

ウェーブレットとパラメーターの解析。次のフィールドを含む構造体として返されます。

  • wname — ウェーブレット名

  • param — ウェーブレット パラメーター

正規化定数。M 行 N 列の行列として返されます。ここで、M はスケールの数、N は角度の数です。

CWT 係数。N 次元配列として返されます。

  • 配列の行と列の次元は、入力データの行と列の次元と同じです。

  • 配列の 3 ページ目は、入力データがグレースケール イメージであるかトゥルーカラー イメージであるかに応じて、それぞれ 1 または 3 に等しくなります。

  • 配列の 4 ページ目はスケールの数と同じです。

  • 配列の 5 ページ目は角度の数と同じです。

2 次元 CWT のスケール。行ベクトルとして返されます。

2 次元 CWT の角度。行ベクトルとして返されます。

入力データの平均。スカラーとして返されます。

バージョン履歴

R2013b で導入

すべて展開する