Gabor filtre ...

D

darelet

Guest
Salut tout le monde,
Je suis nouveau sur ce forum, et traitement d'image pour ainsi.Je travaille sur le filtre de Gabor, et j'ai lu les discussions précédentes sur le même de ce forum ainsi.Mon problème est un peu particulier cependant, alors que je tentais la mise en œuvre mes 2D Gabor, selon des sources sur Internet, les résultats ne sont pas exactement les mêmes pour l'image filtrée, et sont encore pire pour l'image Gabor lui-même.J'ai moi-même travaillé à mes limites individuelles en vain, et ne vois pas évidente manquerais à mon application.S'il vous plaît aider ...
Voici mon code (je posterai les pièces nécessaires uniquement pour la lisibilité)

Code:

gx_r = nouveau flotteur y_filterWidth [*] x_filterWidth; gx_i float = new y_filterWidth [*] x_filterWidth;for (int y =- y_filterHalfWidth; y <= y_filterHalfWidth; y ) (

for (int x =- x_filterHalfWidth; x <= x_filterHalfWidth; x ) (

float x1 = (x-x0) * cos (theta) (y-y0) * sin (theta),

y1 = - (x-x0) * sin (theta) (y-y0) * cos (theta);

float exponentielle = exp (- ((x1 * x1) ((gamma gamma *) * (* y1 y1))) / (2 * (* sigma_y sigma_x)));

* Facteur gaussien = exponentielle;

[Gx_r (y y_filterHalfWidth) * x_filterWidth (x x_filterHalfWidth)] =

cos * gaussien (* 2 * PI (x1/lambda) phase);

gx_i [(y y_filterHalfWidth) * x_filterWidth (x x_filterHalfWidth)] =

Gaussien * sin (2 * PI (x1/lambda) phase);

)

)/ / A emporter la moyenne

float mean_r = 0,0, mean_i = 0,0;

for (int f = 0; f <(* x_filterWidth y_filterWidth); f ) (

Mean_r = [gx_r f]; mean_i = gx_i [f];

)

mean_r = mean_r / (* x_filterWidth y_filterWidth);

mean_i = mean_i / (* x_filterWidth y_filterWidth);

for (int f = 0; f <(* x_filterWidth y_filterWidth); f ) (

mean_r [gx_r f] -=; / / Suppression de DC biais

[Gx_i f] -= mean_i;

)
 

Welcome to EDABoard.com

Sponsor

Back
Top