Zastosuj filtry Mediana i Wiener do obrazów w C#

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 — 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#.

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 mediany do obrazu C#

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#.

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.

Zastosuj filtr Gaussa Weinera do skalowania szarości obrazu

Poniżej przedstawiono obraz przed i po zastosowaniu filtra Gaussa Wienera bez skali szarości.

Zastosuj filtr kolorów Gaussa Weinera do obrazu

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#.

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");
}
Zastosuj filtr Motion Weiner do obrazu w C#

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.

Zobacz też