Back to Top

Daily Archives: 2017年2月8日

VB.NET AForge画像のグレース化

AForgeを使用して、画像簡単にグレース化する方法を記載します。

AForge.Imaging.Filters をインポートします。

  

Grayscale クラスを使用してグレース化

Dim FilePath As String = "C:\work\imgsample01.jpg"
Dim img As System.Drawing.Image = System.Drawing.Image.FromFile(FilePath)

'グレース画像を作成するフィルターを作成する
Dim GrayFilter As Grayscale = New Grayscale(0.2125, 0.7154, 0.0721)

'グレース画像を取得する
Dim GryImage As Bitmap = GrayFilter.Apply(img)

'ピクチャーボックスに表示
PictureBox1.Image = GryImage

Grayscale クラスのパラメータは、色変換の係数で、左からR・G・Bです。

上記では、BT.709のグレースケール 赤:0.2125 緑:0.7154 青:0.0721 に設定しています。

BT.601 の場合は、赤:0.299 緑:0.587 青:0.114 などあります。

 

VB.NET AForge画像の二値化

AForgeを使用して、画像を二値化する方法を記載します。

AForge.Imaging.Filters をインポートします。

Threshold クラスを使用して二値化する

画像を二値化するには、グレース化した画像を使用しますので、二値化する前にグレース化します。

Dim FilePath As String = "C:\work\imgsample01.jpg"
Dim img As System.Drawing.Image = System.Drawing.Image.FromFile(FilePath)

'グレース化処理
Dim GrayFilter As Grayscale = New Grayscale(0.2125, 0.7154, 0.0721)
Dim GryImage As Bitmap = GrayFilter.Apply(img)

'二値化処理
Dim thresFilter As Threshold = New Threshold(100)
Dim thresImage As Bitmap = thresFilter.Apply(GryImage)

PictureBox1.Image = thresImage

二値化は、どれくらいの明るさ以上で白にするかという指標を閾値として0~255で指定します。