ガボールフィルタ

出典: フリー百科事典『ウィキペディア(Wikipedia)』

これはこのページの過去の版です。佐藤能臣 (会話 | 投稿記録) による 2014年12月30日 (火) 12:42個人設定で未設定ならUTC)時点の版 (佐藤能臣 (会話) による ID:53953321 の版を取り消し)であり、現在の版とは大きく異なる場合があります。

2次元ガボールフィルタの例

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

概説

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

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

方程式

ここで

かつ

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

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);

関連項目

参考文献

外部リンク