ガボールフィルタ

ガボールフィルタ（）は、画像処理のテクスチャー解析等に用いられる線型フィルタの一種。（2次元のガボールフィルタでは）画像の各点周りの局所領域において、方向毎に特定の周波数成分を抽出することができる。
虹彩認識や指紋認証にも応用されている他、哺乳類の脳の一次視覚野にある単純型細胞の活動をモデル化できることが示されている。名称はガーボル・デーネシュに因む。
定義.
細部が異なる種々の定義があるが、基本的にはガウス関数（ガウシアンエンベロープとも呼ばれる）と三角関数（搬送波とも呼ばれる）の積として定義される：
formula_1の函数であるガボールフィルタformula_2は、formula_3をガウス関数、formula_4を三角関数として
と定義される。
ここでformula_5 はガウシアンエンベロープの強度のスケール、formula_6 はガウシアンエンベロープのスケールや方向を指定する線形変換、formula_7は搬送波の（空間）周波数と方向を表す波数ベクトル、formula_8 は位相オフセットを表す。
formula_3とformula_4の具体的な形は、1次元の場合、通常スケールパラメータformula_11により
2次元の場合は、ガウシアンエンベロープの方向formula_12と軸毎のスケールパラメータformula_13により
と表す。ここでformula_14で、
である。実部と虚部に分けた形や、更にガウシアンエンベロープの方向と波数ベクトルの方向とを一致させた形（formula_15）も用いられる：
応用.
画像処理では通常、異なる周波数、検出方向のガボールフィルタで構成されるフィルタバンクの形でよく利用される（これを画像に畳み込んで得られる出力をガボール空間という）。具体的事例は以下：
ガボールフィルタはガボールウェーブレットと直接関係しており、ガボールフィルタに回転や膨張を加えることで設計されるが、拡大は非常に時間がかかるため、ガボールウェーブレットでは適用されない。
実装例.
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);