假设我有这个图像:
http
://srv2.jpg.co.il/9/51c614f7c280e.png
我想得到白球的位置(x,y),
这是一个非常大的图像,
然后我剪掉了矩形图像。
(因为当图像较小时,一切都更快),
结果:
http
:
//srv2.jpg.co.il/1/51c616787a3fa.png 现在我想通过他的颜色来跟踪白球的位置(white=rbg(255,255,255 )),
我的代码:
Public Function GetBallPosition(ByRef HaxScreenOnly As Bitmap) As Point
For y = 0 To HaxScreenOnly.Height - 1
For x = 0 To HaxScreenOnly.Width - 1
If HaxScreenOnly.GetPixel(x, y) = Color.FromArgb(0, 0, 0) Then
If HaxScreenOnly.GetPixel(x + 8, y) = Color.FromArgb(0, 0, 0) And HaxScreenOnly.GetPixel(x + 8, y + 3) = Color.FromArgb(255, 255, 255) Then
Return New Point(x, y)
End If
End If
Next
Next
Return New Point(0, 0)
End Function
如果当前像素的颜色是黑色并且当前像素的颜色(x+8,y+3)是白色,那么这就是
它正在工作的球......但是它非常慢,大约需要 200 毫秒来跟踪球位置。
这还不够快。
有更快的方法来跟踪白球(C# 或 VB.net)吗?