Zastosowanie filtrów medianowych i Wiener w obrazach w C#

Edycja obrazów odgrywa kluczową rolę w różnych aplikacjach, umożliwiając poprawę i manipulację obrazami do dalszego przetwarzania. W naszych poprzednich blogach omawialiśmy takie tematy jak przycinanie obrazów, obracanie obrazów oraz rozmywanie obrazów. Dziś zagłębimy się w zastosowanie filtrów medianowych i Wiener — dwóch niezbędnych technik do usuwania szumów i wygładzania obrazów. Zobaczmy jak programowo zastosować filtry medianowe i Wiener do obrazu w C#.

API C# do zastosowania filtrów medianowych i Wiener - Darmowe pobranie

Aspose.Imaging dla .NET to potężne API zaprojektowane do implementacji funkcji edycji obrazów w aplikacjach .NET. Wykorzystamy to API do zastosowania filtrów medianowych i Wiener na obrazach. Możesz łatwo pobrać API lub zainstalować je bezpośrednio z NuGet za pomocą następującego polecenia:

PM> Install-Package Aspose.Imaging

Zastosowanie filtru medianowego do obrazu w C#

Filtr medianowy to nieliniowa technika cyfrowego filtrowania, która skutecznie redukuje szumy w obrazach. Oto jak możesz zastosować filtr medianowy do obrazu w C#:

  1. Załaduj obraz za pomocą metody Image.Load().
  2. Rzutuj obraz na typ RasterImage.
  3. Utwórz instancję klasy MedianFilterOptions i zainicjalizuj ją pożądaną wielkością prostokąta.
  4. Zastosuj filtr medianowy za pomocą metody RasterImage.Filter(Rectangle, MedianFilterOptions).
  5. Zapisz wynikowy obraz za pomocą metody RasterImage.Save().

Oto przykładowy kod demonstrujący, jak zastosować filtr medianowy do obrazu w C#:

Poniżej znajduje się obraz przed i po zastosowaniu filtru medianowego:

Zastosowanie filtru medianowego do obrazu C#

Zastosowanie filtru Gauss-Wiener do obrazu w C#

Filtr Gauss-Wiener to kolejna skuteczna metoda minimalizowania szumów addytywnych i rozmycia w obrazach. Wykonaj następujące kroki, aby zastosować filtr Gauss-Wiener w C#:

  1. Załaduj obraz za pomocą metody Image.Load().
  2. Rzutuj obraz na typ RasterImage.
  3. Utwórz instancję klasy GaussWienerFilterOptions i zainicjalizuj ją z pożądaną wielkością promienia i wartością wygładzania.
  4. (Opcjonalnie) Dla obrazu w odcieniach szarości ustaw właściwość GaussWienerFilterOptions.Grayscale na true.
  5. Zastosuj filtr Gauss-Wiener za pomocą metody RasterImage.Filter(Rectangle, GaussWienerFilterOptions).
  6. Zapisz wynikowy obraz za pomocą metody RasterImage.Save().

Oto przykładowy kod do zastosowania filtru Gauss-Wiener do obrazu w C#:

Poniżej możesz zobaczyć obraz przed i po zastosowaniu filtru Gauss-Wiener z opcją odcieni szarości:

Zastosowanie filtru Gauss-Wiener do obrazu w odcieniach szarości

A oto obraz przed i po zastosowaniu filtru Gauss-Wiener bez odcieni szarości:

Zastosowanie kolorowego filtru Gauss-Wiener do obrazu

Zastosowanie filtru ruchu Wiener do obrazu w C#

Filtr ruchu Wiener został specjalnie zaprojektowany do eliminacji rozmycia spowodowanego poruszającymi się obiektami. Oto jak zastosować filtr ruchu Wiener w C#:

  1. Załaduj obraz za pomocą metody Image.Load().
  2. Rzutuj obraz na typ RasterImage.
  3. Utwórz instancję klasy MotionWienerFilterOptions i zainicjalizuj ją z długością, wartością wygładzania i kątem.
  4. Zastosuj filtr ruchu Wiener za pomocą metody RasterImage.Filter(Rectangle, MotionWienerFilterOptions).
  5. Zapisz wynikowy obraz za pomocą metody RasterImage.Save().

Oto przykładowy kod pokazujący, jak zastosować filtr ruchu Wiener do obrazu w C#:

Zastosowanie filtru ruchu Wiener do obrazu w C#

API do filtracji obrazów w C# - Uzyskaj darmową licencję

Możesz uzyskać darmową tymczasową licencję, aby zastosować filtry medianowe i Wiener do obrazów bez żadnych ograniczeń oceny.

Podsumowanie

W tym artykule zbadaliśmy, jak zastosować filtry medianowe i Wiener do obrazów w C#. Omówiliśmy również metody redukcji szumów z poruszających się obiektów w obrazach. Możesz bezproblemowo zintegrować te funkcje w swoich aplikacjach C#, aby poprawić swoje możliwości edycji obrazów.

Przeczytaj więcej

Aby dowiedzieć się więcej o API do przetwarzania obrazów .NET, sprawdź dokumentację. Jeśli masz jakiekolwiek pytania, nie wahaj się skontaktować z nami przez nasze forum.

Zobacz także