Question

Lors de l'application d'un flou gaussien à une image, typiquement le sigma est un paramètre (des exemples comprennent Matlab et ImageJ).

Comment peut-on savoir ce que sigma devrait être? Est-il un moyen mathématique pour trouver un sigma optimal? Dans mon cas, j'ai quelques objets dans des images qui sont lumineuses par rapport à l'arrière-plan, et je dois les trouver informatiquement. Je vais appliquer un filtre gaussien pour rendre le centre de ces objets encore plus lumineux, ce qui facilite l'espérons les trouver. Comment puis-je déterminer le sigma optimal pour cela?

Était-ce utile?

La solution

Il n'y a pas de formule pour déterminer pour vous; le sigma optimal dépend de facteurs d'image -. principalement la résolution de l'image et la taille de vos objets qu'elle contient (en pixels)

En outre, notez que les filtres gaussiennes ne sont pas réellement destinés à quoi que ce soit Brighten; vous voudrez peut-être se pencher sur les techniques de maximisation de contraste - sons comme quelque chose d'aussi simple que l'histogramme d'étirement pourrait bien fonctionner pour vous.

modifier Plus explication - sigma essentiellement contrôle la « graisse » votre fonction du noyau va être; des valeurs plus élevées sigma flou sur un rayon plus large. Puisque vous travaillez avec des images, plus sigma vous oblige également à utiliser une matrice de noyau plus grand à une quantité suffisante de capture de l'énergie de la fonction. Pour votre cas spécifique, vous voulez que votre noyau soit assez grand pour couvrir la majeure partie de l'objet (de sorte qu'il est assez floue), mais pas si grand qu'il commence chevauchement de multiples objets voisins à la fois - donc en fait, l'objet séparation est également un facteur avec la taille.

Puisque vous avez mentionné Matlab - vous pouvez jeter un oeil à divers gaussiennes avec des paramètres différents en utilisant la fonction fspecial('gaussian', hsize, sigma), où hsize est la taille du noyau et sigma est, bien, sigma. Essayez de varier les paramètres pour voir comment il change.

Autres conseils

Vous devez trouver un min / max d'une fonction G telle que G (X, Sigma) où X est un ensemble de vos observations (dans votre cas, vos valeurs de niveaux de gris d'image), cette fonction peut être quelque chose qui maintiennent la « ordre » des intensités de l'iamge, par exemple, cela peut être fait avec le premier dérivé de l'image (en G),

fil = fspecial('sobel');
im = imfilter(I,fil);
imagesc(im);
colormap = gray;

cela vous donne le résultat d'une première dérivée d'une image, maintenant vous voulez trouver max sigma par maximzing G (X, Sigma), cela signifie que vous essayez quelques sigmas (disons, dans l'ordre croissant) jusqu'à atteindre un sigma qui fait G maximale. Cela peut aussi être fait avec la dérivée seconde.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top