L’édition d’images est utilisée dans diverses applications pour manipuler des images en vue d’un traitement ultérieur. Nous avons écrit une série de blogs, à savoir recadrage, rotation, flou, etc., qui vous sont utiles pour implémenter des fonctionnalités d’édition d’images dans vos applications. Dans cet article, nous allons vous montrer comment appliquer les filtres médian et wiener, qui sont couramment utilisés pour débruiter et lisser les images. Voyons donc comment appliquer des filers médian et wiener à une image par programmation en C#.
- API C# pour appliquer des filtres d’image médian et Wiener
- Appliquer le filtre médian à une image en C#
- Appliquer le filtre Gauss Wiener à une image
- Filtrage Motion Wiener d’une image
API C# pour appliquer des filtres d’image médian et Wiener - Téléchargement gratuit
Aspose.Imaging for .NET est une API incroyable pour implémenter des fonctionnalités d’édition d’images dans les applications .NET. Nous utiliserons cette API pour appliquer des filtres médian et wiener sur les images. Vous pouvez soit télécharger l’API ou l’installer à partir de NuGet.
PM> Install-Package Aspose.Imaging
Appliquer le filtre médian à une image en C#
Le filtre médian est une technique de filtrage numérique non linéaire, qui est utilisée pour réduire le bruit des images. Voici les étapes pour appliquer un filtre médian à une image en C#.
- Tout d’abord, chargez l’image à l’aide de la méthode Image.Load().
- Ensuite, convertissez l’image en type RasterImage.
- Créez une instance de la classe MedianFilterOptions et initialisez-la avec la taille du rectangle.
- Appliquez le filtre médian à l’aide de la méthode RasterImage.Filter(Rectangle, MedianFilterOptions).
- Enfin, enregistrez l’image résultante en utilisant la méthode RasterImage.Save().
L’exemple de code suivant montre comment appliquer un filtre médian à une image en C#.
// Charger l'image bruitée
using (Image image = Image.Load("jack.jpg"))
{
// Convertir l'image en RasterImage
RasterImage rasterImage = image as RasterImage;
if (rasterImage == null)
{
return;
}
// Créez une instance de la classe MedianFilterOptions et définissez la taille
MedianFilterOptions options = new MedianFilterOptions(4);
// Appliquer le filtre et enregistrer l'image
rasterImage.Filter(image.Bounds, options);
image.Save("jack_median.jpg");
}
Ci-dessous, l’image avant et après l’application du filtre médian.
Appliquer le filtre Gauss Wiener à une image en C
Une autre méthode couramment utilisée pour minimiser le bruit additif et le flou dans les images est le gauss wiener. Voici les étapes pour appliquer le filtre gauss wiener à une image en C#.
- Tout d’abord, chargez l’image à l’aide de la méthode Image.Load().
- Ensuite, convertissez l’image en type RasterImage.
- Créez une instance de la classe GaussWienerFilterOptions et initialisez-la avec la taille du rayon et la valeur de lissage.
- (Facultatif) Pour obtenir une image en niveaux de gris, définissez la propriété GaussWienerFilterOptions.Grayscale sur true.
- Appliquez le filtre Gauss Wiener à l’aide de la méthode RasterImage.Filter(Rectangle, GaussWienerFilterOptions).
- Enfin, enregistrez l’image résultante en utilisant la méthode RasterImage.Save().
L’exemple de code suivant montre comment appliquer un filtre Gauss Wiener à une image en C#.
// Charger l'image bruitée
using (Image image = Image.Load("jack.jpg"))
{
// Convertir l'image en RasterImage
RasterImage rasterImage = image as RasterImage;
if (rasterImage == null)
{
return;
}
// Créez une instance de la classe GaussWienerFilterOptions et définissez la taille du rayon et la valeur de lissage
GaussWienerFilterOptions options = new GaussWienerFilterOptions(12, 3);
options.Grayscale = true;
// Appliquez le filtre MedianFilterOptions à l'objet RasterImage et enregistrez l'image résultante
rasterImage.Filter(image.Bounds, options);
image.Save("jack_guass.jpg");
}
Ci-dessous, l’image avant et après l’application du filtre Gauss Wiener avec l’option Niveaux de gris.
Voici l’image avant et après l’application du filtre gauss wiener sans échelle de gris.
Appliquer le filtre Motion Wiener à une image en C#
Le filtre Motion Wiener est utilisé pour supprimer le flou d’une image produite à cause des objets en mouvement. Voici les étapes à suivre pour appliquer le filtre de mouvement Wiener à une image en C#.
- Tout d’abord, chargez l’image à l’aide de la méthode Image.Load().
- Ensuite, convertissez l’image en type RasterImage.
- Créez une instance de la classe MotionWienerFilterOptions et initialisez-la avec la longueur, la valeur de lissage et l’angle.
- Appliquez le filtre de mouvement Wiener à l’aide de la méthode RasterImage.Filter(Rectangle, MotionWienerFilterOptions).
- Enfin, enregistrez l’image résultante en utilisant la méthode RasterImage.Save().
L’exemple de code suivant montre comment appliquer un filtre Wiener de mouvement à une image en C#.
// Charger l'image bruitée
using (Image image = Image.Load("jack.jpg"))
{
// Convertir l'image en RasterImage
RasterImage rasterImage = image as RasterImage;
if (rasterImage == null)
{
return;
}
// Créez une instance de la classe MotionWienerFilterOptions et définissez la longueur, la valeur de lissage et l'angle
MotionWienerFilterOptions options = new MotionWienerFilterOptions(50, 9, 90);
options.Grayscale = true;
// Appliquez le filtre MedianFilterOptions à l'objet RasterImage et enregistrez l'image résultante
rasterImage.Filter(image.Bounds, options);
image.Save("jack_MotionWiener.jpg");
}
API C# Median et Wiener Image Filtering - Obtenez une licence gratuite
Vous pouvez obtenir une licence temporaire gratuite et appliquer des filtres médians et Wiener aux images sans limitation d’évaluation.
Conclusion
Dans cet article, vous avez appris à appliquer des filtres médian et Wiener aux images en C#. De plus, nous avons expliqué comment réduire le bruit des objets en mouvement dans une image. Vous pouvez facilement utiliser ces fonctionnalités dans votre application C# pour intégrer des fonctionnalités d’édition d’images.
Lire la suite
Vous pouvez en savoir plus sur l’API de traitement d’image .NET à l’aide de documentation. Vous pouvez également partager vos questions avec nous via notre forum.