|
分類:[VB.NET]
カラー(ゆめ?)さん こんにちは ここの皆さんは優しいので、できれば自分で解決できるように指導してくださっています。
RGB値を取得したいのですか? 画像の二値化処理がやりたいのですか? たぶん、目的のものが得られるであろう一例を載せておきます。 この方法が最善というわけではありません。 このままで動作するはずですが、そのまま使うのではなく しっかり勉強して自分のものにしてください。
'2値化 Private Sub TwoValue() Const THRESHOLD As Integer = 128 Dim img As Bitmap = PictureBox1.Image If img Is Nothing Then Return
For i As Integer = 0 To img.Width - 1 For j As Integer = 0 To img.Height - 1 If GetColorAverage(img.GetPixel(i, j)) < THRESHOLD Then img.SetPixel(i, j, Color.Black) Else img.SetPixel(i, j, Color.White) End If Next Next PictureBox1.Refresh() End Sub
'色の平均 Private Function GetColorAverage(ByVal c As Color) As Integer Return Int(CDbl(c.R) * 0.299 + CDbl(c.G) * 0.587 + CDbl(c.B) * 0.114) End Function
ちなみにFor文の中(IF〜ENDIF)を次の2行に入れ替えるとグレースケールになります。 Dim iAve As Integer = GetColorAverage(img.GetPixel(i, j)) img.SetPixel(i, j, Color.FromArgb(iAve, iAve, iAve))
がんばってください。
|