Edycja obrazu jest używana w różnych aplikacjach do manipulowania obrazami w celu dalszego przetwarzania. Napisaliśmy serię blogów, tj. przycinanie, obracanie, rozmycie itp., które są przydatne do implementacji funkcji edycji obrazu w twoich aplikacjach. W tym artykule pokażemy, jak zastosować filtry mediany i Wienera, które są powszechnie używane do usuwania szumów i wygładzania obrazów. Zobaczmy więc, jak programowo zastosować filtry median i wiener do obrazu w języku C#.
- Interfejs API języka C# do stosowania filtrów obrazu Mediana i Wiener
- Zastosuj filtr mediany do obrazu w C#
- Zastosuj filtr Gaussa Wienera do obrazu
- Motion Wiener Filtrowanie obrazu
Interfejs API języka C# do stosowania filtrów obrazu Mediana i Wiener — bezpłatne pobieranie
Aspose.Imaging for .NET to niesamowity interfejs API do implementacji funkcji edycji obrazu w aplikacjach .NET. Będziemy używać tego interfejsu API do stosowania filtrów mediany i Wienera na obrazach. Możesz pobrać interfejs API lub zainstalować go z NuGet.
PM> Install-Package Aspose.Imaging
Zastosuj filtr mediany do obrazu w C#
Filtr medianowy to nieliniowa cyfrowa technika filtrowania, która służy do redukcji szumów z obrazów. Poniżej przedstawiono kroki, aby zastosować filtr mediany do obrazu w języku C#.
- Najpierw załaduj obraz za pomocą metody Image.Load().
- Następnie rzutuj obraz na typ RasterImage.
- Utwórz instancję klasy MedianFilterOptions i zainicjuj ją rozmiarem prostokąta.
- Zastosuj filtr mediany za pomocą metody RasterImage.Filter(Rectangle, MedianFilterOptions).
- Na koniec zapisz wynikowy obraz za pomocą metody RasterImage.Save().
Poniższy przykład kodu pokazuje, jak zastosować filtr mediany do obrazu w języku C#.
// Załaduj zaszumiony obraz
using (Image image = Image.Load("jack.jpg"))
{
// Wrzuć obraz do RasterImage
RasterImage rasterImage = image as RasterImage;
if (rasterImage == null)
{
return;
}
// Utwórz instancję klasy MedianFilterOptions i ustaw rozmiar
MedianFilterOptions options = new MedianFilterOptions(4);
// Zastosuj filtr i zapisz obraz
rasterImage.Filter(image.Bounds, options);
image.Save("jack_median.jpg");
}
Poniżej znajduje się obraz przed i po zastosowaniu filtra medianowego.
Zastosuj filtr Gaussa Wienera do obrazu w C#
Inną powszechnie stosowaną metodą minimalizowania addytywnego szumu i rozmycia obrazu jest Gauss Wiener. Poniżej przedstawiono kroki, aby zastosować filtr Gaussa Wienera do obrazu w języku C#.
- Najpierw załaduj obraz za pomocą metody Image.Load().
- Następnie rzutuj obraz na typ RasterImage.
- Utwórz instancję klasy GaussWienerFilterOptions i zainicjuj ją rozmiarem promienia i wartością wygładzania.
- (Opcjonalnie) Aby uzyskać obraz w skali szarości, ustaw właściwość GaussWienerFilterOptions.Grayscale na wartość true.
- Zastosuj filtr Gaussa Wienera za pomocą metody RasterImage.Filter(Rectangle, GaussWienerFilterOptions).
- Na koniec zapisz wynikowy obraz za pomocą metody RasterImage.Save().
Poniższy przykładowy kod pokazuje, jak zastosować filtr Wiener Gaussa do obrazu w języku C#.
// Załaduj zaszumiony obraz
using (Image image = Image.Load("jack.jpg"))
{
// Wrzuć obraz do RasterImage
RasterImage rasterImage = image as RasterImage;
if (rasterImage == null)
{
return;
}
// Utwórz instancję klasy GaussWienerFilterOptions i ustaw rozmiar promienia oraz wartość wygładzania
GaussWienerFilterOptions options = new GaussWienerFilterOptions(12, 3);
options.Grayscale = true;
// Zastosuj filtr MedianFilterOptions do obiektu RasterImage i zapisz wynikowy obraz
rasterImage.Filter(image.Bounds, options);
image.Save("jack_guass.jpg");
}
Poniżej znajduje się obraz przed i po zastosowaniu filtra Gaussa Wienera z opcją skali szarości.
Poniżej przedstawiono obraz przed i po zastosowaniu filtra Gaussa Wienera bez skali szarości.
Zastosuj filtr Motion Wiener do obrazu w C#
Filtr ruchu Wienera służy do usuwania rozmycia obrazu, które powstaje z powodu poruszających się obiektów. Poniżej przedstawiono kroki, aby zastosować filtr wienera ruchu do obrazu w języku C#.
- Najpierw załaduj obraz za pomocą metody Image.Load().
- Następnie rzutuj obraz na typ RasterImage.
- Utwórz instancję klasy MotionWienerFilterOptions i zainicjuj ją długością, wartością wygładzenia i kątem.
- Zastosuj filtr ruchu Wienera za pomocą metody RasterImage.Filter(Rectangle, MotionWienerFilterOptions).
- Na koniec zapisz wynikowy obraz za pomocą metody RasterImage.Save().
Poniższy przykładowy kod pokazuje, jak zastosować filtr wiener ruchu do obrazu w języku C#.
// Załaduj zaszumiony obraz
using (Image image = Image.Load("jack.jpg"))
{
// Wrzuć obraz do RasterImage
RasterImage rasterImage = image as RasterImage;
if (rasterImage == null)
{
return;
}
// Utwórz instancję klasy MotionWienerFilterOptions i ustaw długość, wartość wygładzania oraz kąt
MotionWienerFilterOptions options = new MotionWienerFilterOptions(50, 9, 90);
options.Grayscale = true;
// Zastosuj filtr MedianFilterOptions do obiektu RasterImage i zapisz wynikowy obraz
rasterImage.Filter(image.Bounds, options);
image.Save("jack_MotionWiener.jpg");
}
C# Median i Wiener Image Filtering API — uzyskaj bezpłatną licencję
Możesz uzyskać bezpłatną tymczasową licencję i stosować filtry mediany i Wienera do obrazów bez ograniczeń oceny.
Wniosek
W tym artykule nauczyłeś się, jak stosować filtry Mediana i Wiener do obrazów w języku C#. Ponadto omówiliśmy, jak zredukować szum poruszających się obiektów na obrazie. Możesz łatwo użyć tych funkcji w swojej aplikacji C#, aby zintegrować możliwości edycji obrazu.
Czytaj więcej
Więcej informacji na temat interfejsu API przetwarzania obrazu platformy .NET można znaleźć w dokumentacji. Możesz także podzielić się z nami swoimi pytaniami za pośrednictwem naszego forum.