Filtre gaussien dans MATLAB
La "gaussien" filtre dans MATLAB de convolution de l'image avec le noyau Gaussien? Aussi, comment choisissez-vous les paramètres hsize (taille de filtre) et sigma? Sur quoi basez-vous sur?
- Voir aussi: stackoverflow.com/questions/2771114
Vous devez vous connecter pour publier un commentaire.
Vous créez tout d'abord le filtre avec de l' fspecial puis de convolution de l'image avec le filtre à l'aide de imfilter (qui fonctionne sur multidimensionnelle des images comme dans l'exemple).
Vous spécifiez
sigma
ethsize
dansfspecial
.Code:
@Jacob déjà vous a montré comment utiliser le filtre Gaussien dans Matlab, donc je ne vais pas le répéter.
J'ai choisi de la taille du filtre à environ 3*sigma dans chaque direction (arrondi à l'entier impair). Ainsi, le filtre se désintègre à près de zéro sur les bords, et vous n'obtiendrez pas de discontinuités dans l'image filtrée.
Le choix de sigma dépend beaucoup de ce que vous voulez faire. Lissage gaussien est de filtrage passe-bas, ce qui signifie qu'il supprime haute fréquence détail (bruit, mais aussi les bords), tout en préservant la faible fréquence des parties de l'image (c'est à dire ceux qui ne varient pas tellement). En d'autres termes, le filtre de flou tout ce qui est plus petit que le filtre.
Si vous êtes à la recherche pour éliminer le bruit dans une image afin d'améliorer la détection de petits objets, par exemple, je vous suggère de choisir un sigma qui fait de la Gaussienne légèrement plus petit que la fonctionnalité.
Dans MATLAB R2015a ou plus récent, il n'est plus nécessaire (ni souhaitable, d'un point de vue des performances) à utiliser
fspecial
suivie parimfilter
puisqu'il y a une nouvelle fonction appeléeimgaussfilt
qui effectue cette opération en une seule étape et de manière plus efficace.La syntaxe de base:
La taille du filtre pour une Gaussienne d'écart type standard (
sigam
) est choisi automatiquement, mais peut aussi être spécifié manuellement:La valeur par défaut est
2*ceil(2*sigma)+1
.Fonctionnalités supplémentaires de
imgaussfilter
sont la capacité à fonctionner surgpuArray
s, de filtrage ou de la fréquence spatiale de domaine et d'image avancé options de padding. Il ressemble beaucoup à l'IPP... hmmm. De Plus, il y a une version en 3D appeléimgaussfilt3
.[3 3]
pour spécifier un carré de filtre. Vous pouvez simplement utiliser3
. La matrice de notation est utilisée lorsque le filtre n'est pas au carré.