- ベストアンサー
VB.NETのことで困っています。
VB.NETのプログラムで白黒判別プログラムを作成することになったのですが、GetPicxelの使い方が間違っているらしく正しくカウントしてくれません。 ちなみに今作成している問題のプログラムは以下のプログラムです。 Function CountNumColor(ByRef DotWW As Long, ByRef DotHH As Long, ByRef CHECK_C As Long) As Integer Dim Form1 As Object Dim NumEQ As Double Dim NumNot As Long Dim x, y As Long NumEQ = 0 NumNot = 0 System.Windows.Forms.Application.DoEvents() For x = 0 To DotHH - 1 For y = 0 To DotWW - 1 System.Windows.Forms.Application.DoEvents() If CHECK_C = Val("Bitmap.GetPixel(x,y)") Then NumEQ = NumEQ + 1 Else NumNot = NumNot + 1 Debug.Write("x,y,Val(Bitmap.GetPixel(x, y)") End If Next y Next x CountNumColor = NumEQ End Function このプログラムで問題がありましたらぜひとも教えてください。GetPicxel以外の間違いに気づいた人がいた場合もご意見をお待ちしております。また、この質問で分からないことがございましたら遠慮なく書き込んでください。気づき次第返答いたします。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (3)
- GoldIndex001
- ベストアンサー率75% (3/4)
- GoldIndex001
- ベストアンサー率75% (3/4)
- mo_gu
- ベストアンサー率51% (56/109)
お礼
ありがとうございます。 波線のエラーは消えましたが、白と黒を半分ずつ読み込んで50%と50%という風にカウントする変な現象が起こるようになってしまいました。どうしたらいいでしょうか?変更後の内容は以下のプログラムです。 Function CountNumColor(ByRef DotWW As Long, ByRef DotHH As Long, ByRef CHECK_C As Long) As Integer Dim Form1 As Object Dim NumEQ As Double Dim NumNot As Long Dim x, y As Long Dim ChkColor As Color = Color.FromArgb(0) Dim myBitmap As New Bitmap("E:\2005\画像処理システム\黒.bmp") NumEQ = 0 NumNot = 0 System.Windows.Forms.Application.DoEvents() For x = 0 To DotHH - 1 For y = 0 To DotWW - 1 System.Windows.Forms.Application.DoEvents() ChkColor = myBitmap.GetPixel(x, y) If ChkColor.R = 0 And ChkColor.G = 0 And ChkColor.B = 0 Then NumEQ = NumEQ + 1 Else NumNot = NumNot + 1 Debug.Write("x,y,Val(Bitmap.GetPixel(x, y)") End If Next y Next x CountNumColor = NumEQ End Function なぜか心当たりはありますか?全部のプログラムを一旦載せた方がいいのでしょうか?