ガボールフィルタ

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
2次元ガボールフィルタの例

ガボールフィルタ: Gabor filter)とは、線型フィルタの一種で、そのインパルス応答調和関数ガウス関数をかけたものになっている。畳み込み属性があるため、ガボールフィルタのインパルス応答のフーリエ変換は、調和関数のフーリエ変換とガウス関数のフーリエ変換の畳み込みになる。

概説[編集]

ガボールフィルタはガボールウェーブレットと直接関係しており、ガボールフィルタに回転や膨張を加えることで設計される。しかし、拡大は非常に時間がかかるので、ガボールウェーブレットでは適用されない。従って通常、ガボールフィルタで構成されるフィルタバンクは、様々なスケールと回転のものが用意される。このフィルタを信号に適用することで、いわゆるガボール空間が得られる。ガボール空間は画像処理などでよく利用され、例えば虹彩認識指紋認証で使われている。画像内の物体の位置の認識にも役立つ。また、2次元ガボールフィルタによって、初期視覚野にある単純型細胞の活動をモデル化できることが示されている[1]

2次元のガボールフィルタを画像に適用した結果はWeb-enabled image processing operatorsというオンラインアプリケーションのサイトで見ることができる。

方程式[編集]

g(x,y;\lambda,\theta,\psi,\sigma,\gamma)=\exp\left(-\frac{x'^2+\gamma^2y'^2}{2\sigma^2}\right)\cos\left(2\pi\frac{x'}{\lambda}+\psi\right)

ここで

x' = x \cos\theta + y \sin\theta\,

かつ

y' = -x \sin\theta + y \cos\theta\,

である。この方程式で、\lambda は波長のコサイン成分、\thetaガボール関数の縞模様の方向、\psi は位相オフセット、\gamma は空間アスペクト比を表し、ガボール関数のサポートの楕円率を表す。

MATLABでの実装例[編集]

以下は、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);

関連項目[編集]

参考文献[編集]

外部リンク[編集]