ガボールフィルタ

ガボールフィルタ（）は、画像処理のテクスチャー解析等に用いられる線型フィルタの一種。（2次元のガボールフィルタでは）画像の各点周りの局所領域において、方向毎に特定の周波数成分を抽出することができる。
虹彩認識や指紋認証にも応用されている他、哺乳類の脳の一次視覚野にある単純型細胞の活動をモデル化できることが示されている。名称はガーボル・デーネシュに因む。

定義 

細部が異なる種々の定義があるが、基本的にはガウス関数（ガウシアンエンベロープとも呼ばれる）と三角関数（搬送波とも呼ばれる）の積として定義される：
の函数であるガボールフィルタは、をガウス関数、を三角関数として

と定義される。
ここで はガウシアンエンベロープの強度のスケール、 はガウシアンエンベロープのスケールや方向を指定する線形変換、は搬送波の（空間）周波数と方向を表す波数ベクトル、 は位相オフセットを表す。
との具体的な形は、1次元の場合、通常スケールパラメータにより

2次元の場合は、ガウシアンエンベロープの方向と軸毎のスケールパラメータにより

と表す。ここでで、

である。実部と虚部に分けた形や、更にガウシアンエンベロープの方向と波数ベクトルの方向とを一致させた形（）も用いられる：

応用 

画像処理では通常、異なる周波数、検出方向のガボールフィルタで構成されるフィルタバンクの形でよく利用される（これを画像に畳み込んで得られる出力をガボール空間という）。具体的事例は以下：

虹彩認識や指紋認証、顔の表情の認識。

髪型のモデリング。

脊椎の骨梁（trabecular bone）における方向性の分布の分析。

哺乳類の脳の一次視覚野にある単純型細胞の活動のモデル 。

スキャンした文書の中のテキスト部分の抽出（一般にテキスト部分が、画像部分に比べ相対的に高周波数成分が多いことを利用している）。

シーンを記述する低次元の大域特徴。

ガボールフィルタはガボールウェーブレットと直接関係しており、ガボールフィルタに回転や膨張を加えることで設計されるが、拡大は非常に時間がかかるため、ガボールウェーブレットでは適用されない。

実装例 

scikit-imageにおける実装

MATLAB
function gb=gabor_fn(sigma_x,sigma_y,theta,lambda,psi,gamma)

sz_x=fix(6*sigma_x);
if mod(sz_x,2)==0, sz_x=sz_x+1;end
	

sz_y=fix(6*sigma_y);
if mod(sz_y,2)==0, sz_y=sz_y+1;end

[x y]=meshgrid(-fix(sz_x/2):fix(sz_x/2),fix(-sz_y/2):fix(sz_y/2));

% Rotation 
x_theta=x*cos(theta)+y*sin(theta);
y_theta=-x*sin(theta)+y*cos(theta);

gb=exp(-.5*(x_theta.^2/sigma_x^2+gamma^2*y_theta.^2/sigma_y^2)).*cos(2*pi/lambda*x_theta+psi);

脚注

関連項目 
 ガーボル・デーネシュ

外部リンク 
 初期視覚機能をモデル化したガボールフィルタLSI 九州工業大学大学院生命体工学研究科森江研究室
Web-enabled image processing operators 2次元のガボールフィルタを画像に適用した結果を見ることができる。

制御理論
信号処理
画像処理
数学に関する記事