AForgeを使用して、画像に適用する必要のあるフィルタを一度に行う方法を記載します。
AForgeは、AForge.Imaging.Filtersネームスペース内に沢山の画像フィルタが準備されています。
そのフィルタを連続して適用する方法が準備されています。
AForge.Imaging.Filters をインポートします。
FiltersSequenceクラスを使用してフィルタを画像に適用する
FiltersSequenceは、追加したフィルタを順番に適用します。
Dim FilePath As String = "C:\work\imgsample01.jpg" Dim img As System.Drawing.Image = System.Drawing.Image.FromFile(FilePath) 'グレース化・2祖化・ピクセル化を順番に行う Dim SeqFilter As FiltersSequence = New AForge.Imaging.Filters.FiltersSequence() SeqFilter.Add(Grayscale.CommonAlgorithms.BT709) 'グレース化 Grayscale(0.2125, 0.7154, 0.0721)と同じ SeqFilter.Add(New AForge.Imaging.Filters.Threshold()) '2祖化 SeqFilter.Add(New AForge.Imaging.Filters.Pixellate(4)) 'ピクセル化 Dim seqImage As Bitmap = SeqFilter.Apply(img) 'ピクチャーボックスに表示 PictureBox1.Image = seqImage
フィルタの追加順番によってはエラーが出ます。
例えば、二祖化フィルタを適用する場合は、その前にグレース化フィルタを適用する必要があります。