ドキュメンテーション

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

gabor

ガボール フィルターまたはガボール フィルター バンクの作成

構文

g = gabor(wavelength,orientation)
g = gabor(___,Name,Value,___)

説明

g = gabor(wavelength,orientation) は指定された wavelength (ピクセル/サイクル単位) と orientation (度単位) をもつガボール フィルターを作成します。wavelength または orientation をベクトルで指定すると、gabor は "フィルター バンク" と呼ばれる gabor オブジェクトの配列を返します。これには、wavelengthorientation の一意の組み合わせがすべて含まれています。たとえば、wavelength が長さ 2 のベクトル、orientation が長さ 3 のベクトルの場合、出力配列 g は長さ 6 のベクトルになります。ガボール フィルターをイメージに適用するには、関数 imgaborfilt を使用します。

g = gabor(___,Name,Value,___) は、ガボール フィルターの特性を制御する名前と値のペアを使用して、ガボール フィルターの配列を作成します。値をベクトルで指定すると、出力配列 g には、入力値の一意の組み合わせがすべて含まれます。

すべて折りたたむ

チェッカーボードのサンプル イメージを作成します。

A = checkerboard(20);

ガボール フィルターの配列を作成します。

wavelength = 20;
orientation = [0 45 90 135];
g = gabor(wavelength,orientation);

フィルターをチェッカーボード イメージに適用します。

outMag = imgaborfilt(A,g);

結果を表示します。

outSize = size(outMag);
outMag = reshape(outMag,[outSize(1:2),1,outSize(3)]);
figure, montage(outMag,'DisplayRange',[]);
title('Montage of gabor magnitude output images.');

ガボール フィルターの配列を作成します。

g = gabor([5 10],[0 90]);

配列内のガボール フィルターごとに空間たたみ込みカーネルの実数部を可視化します。

figure;
subplot(2,2,1)
for p = 1:length(g)
    subplot(2,2,p);
    imshow(real(g(p).SpatialKernel),[]);
    lambda = g(p).Wavelength;
    theta  = g(p).Orientation;
    title(sprintf('Re[h(x,y)], \\lambda = %d, \\theta = %d',lambda,theta));
end

入力引数

すべて折りたたむ

正弦波の波長。数値スカラーまたは数値ベクトルとしてピクセル/サイクル単位で指定します。

例: g = gabor(4,90);

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

フィルターの方向 (度単位)。範囲 [0 180] の数値スカラーとして指定します。ここで、方向は正弦平面波に垂直な方向で定義します。

例: g = gabor(4,90);

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

名前/値のペアの引数

オプションの Name,Value 引数のペアをコンマ区切りで指定します。ここで、Name は引数名で、Value は対応する値です。Name は単一引用符 (' ') で囲まなければなりません。Name1,Value1,...,NameN,ValueN のように、複数の名前と値のペアの引数を任意の順番で指定できます。

例: g = gabor(4,90,'SpatialFrequencyBandwidth',1.5);

すべて折りたたむ

空間周波数帯域幅をオクターブ単位で定義する数値ベクトル。空間周波数帯域幅は、入力イメージの周波数成分が所要周波数 1/LAMBDA から逸脱したときのフィルター応答のカットオフを決定します。空間周波数帯域幅の一般的な値は [0.5 2.5] の範囲内です。

例: g = gabor(4,90,'SpatialFrequencyBandwidth',1.5);

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

空間領域でのガウスの縦横比。ガウス エンベロープの半長軸と半短軸の比 semi-minor/semi-major を定義する数値ベクトルとして指定します。このパラメーターはガウス エンベロープの楕円率を制御します。空間縦横比の一般的な値は [0.23 0.92] の範囲内です。

例: g = gabor(4,90,'SpatialAspectRatio',0.75);

データ型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

出力引数

すべて折りたたむ

ガボール フィルター配列。gabor オブジェクトの配列として返されます。

R2015b で導入

この情報は役に立ちましたか?