画像編集は、さまざまなアプリケーションで画像を操作してさらに処理するために使用されます。 クロッピング、回転、ぼかしなど、アプリケーションに画像編集機能を実装するのに役立つ一連のブログを書いています。この記事では、画像のノイズ除去と平滑化に一般的に使用されるメジアン フィルターとウィーナー フィルターを適用する方法を紹介します。それでは、C# でプログラムを使用してメディアン ファイラーとウィーナー ファイラーをイメージに適用する方法を見てみましょう。
- Median および Wiener イメージ フィルターを適用する C# API
- C# で画像にメディアン フィルターを適用する
- イメージへのガウス ウィーナー フィルターの適用
- 画像のモーション ウィーナー フィルタリング
Median および Wiener イメージ フィルターを適用する C# API - 無料ダウンロード
Aspose.Imaging for .NET は、.NET アプリケーションに画像編集機能を実装するための素晴らしい API です。この API を使用して、画像にメディアン フィルターとウィーナー フィルターを適用します。 API を ダウンロード するか、NuGet からインストールすることができます。
PM> Install-Package Aspose.Imaging
C# で画像にメディアン フィルターを適用する
メディアン フィルターは、画像からノイズを低減するために使用される非線形デジタル フィルター処理手法です。 C# でメディアン フィルターを画像に適用する手順は次のとおりです。
- まず、Image.Load() メソッドを使用して画像を読み込みます。
- 次に、イメージを RasterImage 型にキャストします。
- MedianFilterOptions クラスのインスタンスを作成し、長方形のサイズで初期化します。
- RasterImage.Filter(Rectangle, MedianFilterOptions) メソッドを使用してメディアン フィルターを適用します。
- 最後に、RasterImage.Save() メソッドを使用して結果の画像を保存します。
次のコード サンプルは、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# で画像に Gauss Wiener フィルターを適用する
画像の加法的ノイズとぼやけを最小限に抑えるために一般的に使用されるもう 1 つの方法は、ガウス ウィーナーです。以下は、ガウス ウィーナー フィルターを C# の画像に適用する手順です。
- まず、Image.Load() メソッドを使用して画像を読み込みます。
- 次に、イメージを RasterImage 型にキャストします。
- GaussWienerFilterOptions クラスのインスタンスを作成し、半径のサイズと滑らかな値で初期化します。
- (オプション) グレースケール イメージを取得するには、GaussWienerFilterOptions.Grayscale プロパティを true に設定します。
- RasterImage.Filter(Rectangle, GaussWienerFilterOptions) メソッドを使用してガウス ウィーナー フィルターを適用します。
- 最後に、RasterImage.Save() メソッドを使用して結果の画像を保存します。
次のコード サンプルは、ガウス ウィーナー フィルターを 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");
}
以下は、グレースケール オプションでガウス ウィーナー フィルターを適用する前後の画像です。
以下は、グレースケールなしでガウス ウィーナー フィルターを適用する前後の画像です。
C# でモーション ウィーナー フィルターを画像に適用する
モーション ウィナー フィルターは、移動するオブジェクトによって生成される画像のブレを除去するために使用されます。 C# でモーション ウィーナー フィルターを画像に適用する手順は次のとおりです。
- まず、Image.Load() メソッドを使用して画像を読み込みます。
- 次に、イメージを RasterImage 型にキャストします。
- MotionWienerFilterOptions クラスのインスタンスを作成し、長さ、滑らかな値、および角度で初期化します。
- RasterImage.Filter(Rectangle, MotionWienerFilterOptions) メソッドを使用してモーション ウィーナー フィルターを適用します。
- 最後に、RasterImage.Save() メソッドを使用して結果の画像を保存します。
次のコード サンプルは、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# Median および Wiener Image Filtering API - 無料ライセンスを取得
無料の一時ライセンスを取得 し、評価制限なしで画像にメディアン フィルターとウィーナー フィルターを適用できます。
結論
この記事では、C# でメディアン フィルターとウィーナー フィルターを画像に適用する方法を学習しました。さらに、画像内の移動オブジェクトのノイズを低減する方法についても説明しました。これらの機能を C# アプリケーションで簡単に使用して、画像編集機能を統合できます。
続きを読む
ドキュメント を使用して、.NET 画像処理 API について詳しく調べることができます。また、フォーラム を通じて質問を共有することもできます。