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

Soyez le premier à donner votre avis sur cette source.

Vue 15 465 fois - Téléchargée 1 996 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
bahsbma Messages postés 1 Date d'inscription mercredi 15 octobre 2014 Statut Membre Dernière intervention 15 octobre 2014
15 oct. 2014 à 01:30
excellent programme
mais ou est-il le temps d'execution de la fonction "GaborFilter" lorsqu'on clique sur la button "Compute Gabor Filter".
a+
Pistol_Pete Messages postés 1054 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
27 mars 2012 à 15:22
Merci d'avoir pris le temps de faire remonter le bug...
A+
guismo06 Messages postés 4 Date d'inscription vendredi 24 novembre 2006 Statut Membre Dernière intervention 27 mars 2012
27 mars 2012 à 11:28
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+
Pistol_Pete Messages postés 1054 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 9 juillet 2013 7
27 mars 2012 à 09:57
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+
guismo06 Messages postés 4 Date d'inscription vendredi 24 novembre 2006 Statut Membre Dernière intervention 27 mars 2012
27 mars 2012 à 09:39
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)?

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.