Back to Top

プログラムの覚書

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で指定します。

 
  

 

Posted in AForge | Leave a reply

VB.NET AForge画像のエッジ検出

AForgeを使用して、画像のエッジ検出をする方法を記載します。

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

CannyEdgeDetector クラスを使用してエッジ検出

画像のエッジを検出するには、グレース化した画像を使用します。

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 edgeFilter As CannyEdgeDetector = New CannyEdgeDetector(40, 50)
Dim edgeImage As Bitmap = edgeFilter.Apply(GryImage)

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

エッジ検出のCannyEdgeDetector クラスには、低い閾値、高い閾値、ガウスシグマのパラメータを指定することが出来ます。

 
 
 

 

Posted in AForge | Leave a reply