C# で画像にメディアン フィルターとウィーナー フィルターを適用する

画像編集は、さまざまなアプリケーションで画像を操作してさらに処理するために使用されます。 クロッピング回転ぼかしなど、アプリケーションに画像編集機能を実装するのに役立つ一連のブログを書いています。この記事では、画像のノイズ除去と平滑化に一般的に使用されるメジアン フィルターとウィーナー フィルターを適用する方法を紹介します。それでは、C# でプログラムを使用してメディアン ファイラーとウィーナー ファイラーをイメージに適用する方法を見てみましょう。

Median および Wiener イメージ フィルターを適用する C# API - 無料ダウンロード

Aspose.Imaging for .NET は、.NET アプリケーションに画像編集機能を実装するための素晴らしい API です。この API を使用して、画像にメディアン フィルターとウィーナー フィルターを適用します。 API を ダウンロード するか、NuGet からインストールすることができます。

PM> Install-Package Aspose.Imaging

C# で画像にメディアン フィルターを適用する

メディアン フィルターは、画像からノイズを低減するために使用される非線形デジタル フィルター処理手法です。 C# でメディアン フィルターを画像に適用する手順は次のとおりです。

次のコード サンプルは、C# でメディアン フィルターを画像に適用する方法を示しています。

// ノイズの多い画像を読み込む 
using (Image image = Image.Load("jack.jpg"))
{
    // 画像を RasterImage にキャストする
    RasterImage rasterImage = image as RasterImage;
    if (rasterImage == null)
    {
        return;
    }

    // MedianFilterOptions クラスのインスタンスを作成し、サイズを設定します
    MedianFilterOptions options = new MedianFilterOptions(4);
    
    // フィルタを適用して画像を保存
    rasterImage.Filter(image.Bounds, options);
    image.Save("jack_median.jpg");
}

以下は、メディアン フィルターを適用する前後の画像です。

メディアン フィルターをイメージに適用する C#

C# で画像に Gauss Wiener フィルターを適用する

画像の加法的ノイズとぼやけを最小限に抑えるために一般的に使用されるもう 1 つの方法は、ガウス ウィーナーです。以下は、ガウス ウィーナー フィルターを C# の画像に適用する手順です。

次のコード サンプルは、ガウス ウィーナー フィルターを C# の画像に適用する方法を示しています。

// ノイズの多い画像を読み込む 
using (Image image = Image.Load("jack.jpg"))
{
    // 画像を RasterImage にキャストする
    RasterImage rasterImage = image as RasterImage;
    if (rasterImage == null)
    {
        return;
    }

    // GaussWienerFilterOptions クラスのインスタンスを作成し、半径のサイズと滑らかな値を設定します
    GaussWienerFilterOptions options = new GaussWienerFilterOptions(12, 3);
    options.Grayscale = true;

    // MedianFilterOptions フィルターを RasterImage オブジェクトに適用し、結果の画像を保存します。
    rasterImage.Filter(image.Bounds, options);
    image.Save("jack_guass.jpg");
}

以下は、グレースケール オプションでガウス ウィーナー フィルターを適用する前後の画像です。

Gauss Weiner フィルターをイメージのグレースケーリングに適用する

以下は、グレースケールなしでガウス ウィーナー フィルターを適用する前後の画像です。

イメージへの Gaus Weiner カラー フィルターの適用

C# でモーション ウィーナー フィルターを画像に適用する

モーション ウィナー フィルターは、移動するオブジェクトによって生成される画像のブレを除去するために使用されます。 C# でモーション ウィーナー フィルターを画像に適用する手順は次のとおりです。

次のコード サンプルは、C# でモーション ウィーナー フィルターを画像に適用する方法を示しています。

// ノイズの多い画像を読み込む 
using (Image image = Image.Load("jack.jpg"))
{
    // 画像を RasterImage にキャストする
    RasterImage rasterImage = image as RasterImage;
    if (rasterImage == null)
    {
        return;
    }

    // MotionWienerFilterOptions クラスのインスタンスを作成し、長さ、スムーズ値、および角度を設定します
    MotionWienerFilterOptions options = new MotionWienerFilterOptions(50, 9, 90);
    options.Grayscale = true;

    // MedianFilterOptions フィルターを RasterImage オブジェクトに適用し、結果の画像を保存します。
    rasterImage.Filter(image.Bounds, options);
    image.Save("jack_MotionWiener.jpg");
}
C# でモーション ウィーナー フィルターを画像に適用する

C# Median および Wiener Image Filtering API - 無料ライセンスを取得

無料の一時ライセンスを取得 し、評価制限なしで画像にメディアン フィルターとウィーナー フィルターを適用できます。

結論

この記事では、C# でメディアン フィルターとウィーナー フィルターを画像に適用する方法を学習しました。さらに、画像内の移動オブジェクトのノイズを低減する方法についても説明しました。これらの機能を C# アプリケーションで簡単に使用して、画像編集機能を統合できます。

続きを読む

ドキュメント を使用して、.NET 画像処理 API について詳しく調べることができます。また、フォーラム を通じて質問を共有することもできます。

関連項目