Analyse de la texture d'une image : filtre de gabor

Soyez le premier à donner votre avis sur cette source.

Vue 13 923 fois - Téléchargée 1 866 fois

Description

Ce programme permet de visualiser en 3 dimensions les différents noyaux de convolution de ce filtre. Le filtre de Gabor est donc un filtre linéaire dont la réponse impulsionelle est une sinusoïde modulée par une fonction gaussienne. Ce filtre est largement utilisé dans la caractérisation des textures des images mais il peut aussi servir dans la détection des contours.
On peut moduler la fréquence, l'orientation, la phase, l'anisotropie et l'écart type de la gaussienne. Avec ce programme, il est très facile de visualiser l'influence des paramètres sur la forme des noyaux grâce à l'équivalent de la fonction surf de MatLab. C'est une méthode très souple, facilement paramétrable et surtout très puissante.
Enfin, la convolution par le filtre de Gabor est multithreadé dans ce programme car les noyaux peuvent vite avoir une taille importante.
Dans l’applet « surf3D », on effectue une rotation en cliquant déplaçant. Le zoom est réalisé avec la molette de la souris.
J’attends vos remarques et commentaires!

Conclusion :


L'exe est à renommer de .ex en .exe

Mon site internet:
http://ImAnalyse.free.fr

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
1
Date d'inscription
mercredi 15 octobre 2014
Statut
Membre
Dernière intervention
15 octobre 2014

excellent programme
mais ou est-il le temps d'execution de la fonction "GaborFilter" lorsqu'on clique sur la button "Compute Gabor Filter".
a+
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
7
Merci d'avoir pris le temps de faire remonter le bug...
A+
Messages postés
4
Date d'inscription
vendredi 24 novembre 2006
Statut
Membre
Dernière intervention
27 mars 2012

Ok merci pour la réponse.
Il me semble qu'il y a une petite erreur ((l+dy/2) au lieu de (l+dx/2)):
D += MT->Kernel[k+dx/2 + (l+dy/2)*dx] * MT->m_ucpBits[(I+J*MT->W)*4]
a+
Messages postés
1054
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
9 juillet 2013
7
Bonjour,
C'est bien vu, la convolution n'est fait que sur le canal bleu. Il faudrait faire le même traitement pour tous les canaux ou comme tu le suggères très justement, réduire l'espace couleur RGB par ACP ou autre.
Cela dépend vraiment de ton application.
A+
Messages postés
4
Date d'inscription
vendredi 24 novembre 2006
Statut
Membre
Dernière intervention
27 mars 2012

Super programme!
J'ai juste une question, j'ai l'impression que la convolution n'est fait que sur le canal bleu de l'image:
D += MT->Kernel[k+dx/2 + (l+dx/2)*dx] * MT->m_ucpBits[(I+J*MT->W)*4];
Ne faut-il pas faire avant la convolution une fusion des composantes RGB par analyse en composantes principales (ACP) ou par la transformée en ondelettes par exemple (DT-CWT)?
Afficher les 6 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.