Une implémentation matlab se trouve dans cette réponse: https://dsp.stackexchange.com/a/14201/5737
1) La formule wikipedia est un peu trop générale.
2) Si vous connaissez les bases de la transformée de Fourier, vous savez empiriquement que: L'image est vue comme étant formée en superposant une série d'ondes sinusoïdales de différentes fréquences orientées dans toutes sortes de directions. Chaque "pixel" de la transformation nous indique "l'intensité" d'une telle onde. La position du "pixel" nous indique la fréquence et l'orientation de l'onde. En pratique, on veut sélectionner uniquement certaines ondes, ayant une fréquence et une orientation spécifiques.
Voilà: la transformation de Gabor est l'un des nombreux filtres passe-bande qui vous permet de «couper» la transformée de Fourier et d'isoler uniquement des informations spécifiques. Une autre information importante est que chaque "pixel" de Fourier est une valeur complexe (partie réelle et imaginaire)
3) Paramètres: Deux paramètres sont déjà affichés:
3.a) La fréquence d'accord , ou la période d'accord , ou établissent à quel type d'onde sinusale le filtre répondra le mieux. ( ou selon la mise en œuvre spécifique) Fondamentalement, un plus signifie une onde sinusale plus dense. Un plus signifie des vagues plus grandes. est en pixels (3, 5, 30, etc. pixels) Ne passez pas sous 3 pixels ou au-delà de ou vous obtenez des effets désagréables. est la largeur de l'image, si l'image est carrée. Vous spécifiez cela en utilisant le paramètre P0 dans le code matlab.f0P0λf=1/P0=1/λf=π/λP0P0P0W/2W
3.b) Angle central. Ces vagues peuvent avoir toutes les directions. Vous souhaitez sélectionner uniquement les ondes à un angle spécifique. Ainsi, le deuxième paramètre est l'angle de réglage, ou dans votre formule. Habituellement, en radians. Orientez en code matlab.θ0θ
On ne peut isoler qu'une certaine fréquence ou une certaine orientation. (Rechercher le principe d'incertitude dans les manuels scolaires. Oui, c'est similaire à celui de la physique) Mais on peut régler la quantité de fréquences voisines qui fuiront. Les deux paramètres suivants spécifient que:
3.c) , largeur de bande de fréquence exprimée en octaves. Valeurs utiles, 1,5, 2, 3. Des valeurs plus élevées signifient capturer une plus large gamme de fréquences. Il y a un prix pour une bande passante plus étroite, une localisation spatiale plus pauvre. Pourquoi, encore une fois, manuel. FBW en code matlab.ΔF
3.d) la largeur de bande angulaire. Exprimé en radians. ou fonctionne très bien. ABW en code matlab.Δθπ/3π/2
La relation entre , du code matlab et de Wikipedia a une formule mais n'est pas essentielle pour comprendre Gabor. n'est pas encore important pour la compréhension de base.ΔfΔθσ,γψ
Vous l'avez donc: de Wikipedia est une matrice 2D de nombres contenant un masque de convolution. Vous prenez l'image d'origine, la filtrez avec le masque de convolution et obtenez une autre image. Cette nouvelle image est la "réponse de Gabor" pour l'image d'origine.X
Le code matlab effectue ces deux étapes ensemble. Construit le filtre de Gabor avec les paramètres spécifiés et effectue une convolution. Les résultats ReConv, ImConv sont les réponses. Chaque "pixel" de réponse a une partie réelle et une partie imaginaire. Si vous souhaitez utiliser ce code, vous devez généralement calculer l'énergie pour la réponse: où est la partie réelle de la réponse (ReConv) et est la partie imaginaire (ImConv ), pour chaque pixel.E=a2+b2−−−−−−√ab
Voilà: 1) Construisez un filtre Gabor spécifiant
2) Alignez votre image avec le filtre. Vous obtiendrez deux valeurs par pixel. 3) Calculez l'énergie et obtenez l'intensité de la réponse pour chaque pixel de l'image d'origineP0,θ0,Δf,ΔθE
Autre intuition: supposons que vous vouliez sélectionner des bords s'étirant selon une orientation perpendiculaire à et une certaine largeur de 20 pixels. Vous pouvez créer un filtre Gabor avec . PRENEZ GARDE qu'il n'y a pas de relation égale entre la dimension de votre bord et le paramètre . Vous devriez essayer différentes valeurs et voir ce qui fonctionne le mieux. Les autres paramètres ( ) les touchent lorsque vous avez une certaine expérience de réglage des deux premiers.π/6P0≈20,θ0=π/6,Δf=2,Δθ=pi/2P0Δf,Δθ
J'espère que cela aide!
Cristi
Mise à jour
Voici un site qui vous permet de jouer un peu avec les paramètres de Gabor et de noter les résultats: http://www.cogsci.nl/pages/gabor-generator.php
Après un rapide coup d'œil, les largeurs de bande de fréquence et d'angle sont liées ensemble comme "écart-type en pixels ... à l'enveloppe de Gauss". Les autres paramètres sont facilement identifiables. Cependant, notez qu'il existe des différences numériques! Par exemple. la phase peut être exprimée en intervalle 0-1 ou en intervalle 0- .π