場合によっては、画像処理などでカラー画像をグレースケールまたは白黒に変換する必要がある場合があります。したがって、この記事では、C#を使用して画像をグレースケールに変換する方法を学習します。さらに、この記事では、Imageのグレースケーリングと2値化について明示的に説明します。
画像をグレースケールに変換するC#API
RGBカラー画像をグレースケールに変換するには、Aspose.Imaging for .NETを使用します。これは、一般的な画像形式をシームレスに操作できる強力な画像処理APIです。 APIをダウンロードするか、NuGetを使用してインストールできます。
PM> Install-Package Aspose.Imaging
C#で画像をグレースケールに変換する
以下は、C#でカラー画像をグレースケールに変換する手順です。
- まず、Imageクラスを使用して画像を読み込みます。
- 画像をRasterCachedImageオブジェクトにキャストします。
- RasterCachedImage.CacheData()メソッドを使用して画像をキャッシュします。
- RasterCachedImage.Grayscale()メソッドを使用して画像をグレースケールに変換します。
- 最後に、RasterCachedImage.Save(String)メソッドを使用して画像を保存します。
次のコードサンプルは、C#を使用して画像をグレースケールに変換する方法を示しています。
// Imageクラスのインスタンスに画像をロードします
using (Image image = Image.Load("aspose.jpg"))
{
// 画像をRasterCachedImageにキャストし、画像がキャッシュされているかどうかを確認します
RasterCachedImage rasterCachedImage = (RasterCachedImage)image;
if (!rasterCachedImage.IsCached)
{
// まだキャッシュされていない場合は画像をキャッシュする
rasterCachedImage.CacheData();
}
// 画像をグレースケール表現に変換します
rasterCachedImage.Grayscale();
// 画像を保存する
rasterCachedImage.Save("grayscaled.jpg");
}
入力画像
以下は、この記事で使用されているサンプル画像です。
グレースケールに変換
以下は、グレースケールに変換した後の画像です。
二値化で画像を白黒に変換する
2値化では、画像の各ピクセルは2つの可能な値しか持つことができません。 0または1。ここで、0は色がないことを示し、1は色が存在することを示します。 Aspose.Imagingは、固定による2値化と、大津しきい値による2値化の2つの2値化方法をサポートしています。
C#での固定しきい値による2値化
以下は、固定しきい値を使用して画像の2値化を実行する手順です。
- まず、Imageクラスを使用して画像を読み込みます。
- 画像をRasterCachedImageオブジェクトにキャストします。
- RasterCachedImage.CacheData()メソッドを使用して画像をキャッシュします。
- RasterCachedImage.BinarizeFixed()メソッドを使用して、画像を白黒に変換します。
- 最後に、RasterCachedImage.Save(String)メソッドを使用して画像を保存します。
次のC#コードは、画像に2値化を適用し、それを白黒に変換します。
// Imageクラスのインスタンスに画像をロードします
using (Image image = Image.Load("aspose.jpg"))
{
// 画像をRasterCachedImageにキャストし、画像がキャッシュされているかどうかを確認します
RasterCachedImage rasterCachedImage = (RasterCachedImage)image;
if (!rasterCachedImage.IsCached)
{
// まだキャッシュされていない場合は画像をキャッシュする
rasterCachedImage.CacheData();
}
// 画像をバイナリ表現に変換します
rasterCachedImage.BinarizeFixed(100);
// 画像を保存する
rasterCachedImage.Save("black and white.jpg");
}
C#での大津しきい値による2値化
以下は、大津しきい値を使用して画像を白黒に変換する手順です。
- まず、Imageクラスを使用して画像を読み込みます。
- 画像をRasterCachedImageオブジェクトにキャストします。
- RasterCachedImage.CacheData()メソッドを使用して画像をキャッシュします。
- RasterCachedImage.BinarizeOtsu()メソッドを使用して、画像を白黒に変換します。
- 最後に、RasterCachedImage.Save(String)メソッドを使用して画像を保存します。
次のコードサンプルは、C#を使用して大津しきい値を使用して画像を白黒に変換する方法を示しています。
// Imageクラスのインスタンスに画像をロードします
using (Image image = Image.Load("aspose.jpg"))
{
// 画像をRasterCachedImageにキャストし、画像がキャッシュされているかどうかを確認します
RasterCachedImage rasterCachedImage = (RasterCachedImage)image;
if (!rasterCachedImage.IsCached)
{
// まだキャッシュされていない場合は画像をキャッシュする
rasterCachedImage.CacheData();
}
// 画像をバイナリ表現に変換します
rasterCachedImage.BinarizeOtsu();
// 画像を保存する
rasterCachedImage.Save("black and white.jpg");
}
無料のAPIライセンスを取得する
評価の制限なしにAPIを使用するために、無料の一時ライセンスを取得できます。
結論
この記事では、C#を使用して画像をグレースケールと白黒に変換する方法を学習しました。さらに、固定または大津のしきい値を持つ画像に2値化を適用する方法を見てきました。さらに、ドキュメントを使用して、C#画像処理APIの詳細を調べることができます。また、あなたは私たちのフォーラムを通してあなたの質問を私たちと共有することができます。