C#做一些基于图像检测的事情
C# do something based on image detection
我正在用 C# 编写程序。如果在屏幕上检测到图像,我希望它做一些事情。例如,假设我正在制作游戏机器人。我的健康状况是我屏幕上充满绿色的图像,如下所示:
有些东西让我的生命值达到了这个水平:
如果 C# 检测到拍摄了 hp 的图像,请执行某些操作...这可能吗?我该怎么做?谢谢
我为游戏编写了机器人。要检测寿命何时变低,您可以扫描特定像素颜色并使用样本值对其进行测试(例如,您可以捕获矩形中间的像素,如果它是绿色,则寿命超过一半)。
我还做了截图,剪了一些区域,然后保存为位图。在一个游戏中我加载了它们,然后我每秒截屏并检查其中一些位图是否出现在屏幕截图中。
要在 C# 中捕获屏幕,您可以使用 Graphics 的 CopyFromScreen 方法:
var screen = new Bitmap(Screen.PrimaryScreen.Bounds.Width,
Screen.PrimaryScreen.Bounds.Height,
PixelFormat.Format32bppArgb);
var graphics = Graphics.FromImage(screen );
graphics.CopyFromScreen(Screen.PrimaryScreen.Bounds.X,
Screen.PrimaryScreen.Bounds.Y,
0, 0,
Screen.PrimaryScreen.Bounds.Size,
CopyPixelOperation.SourceCopy);
我正在用 C# 编写程序。如果在屏幕上检测到图像,我希望它做一些事情。例如,假设我正在制作游戏机器人。我的健康状况是我屏幕上充满绿色的图像,如下所示:
有些东西让我的生命值达到了这个水平:
如果 C# 检测到拍摄了 hp 的图像,请执行某些操作...这可能吗?我该怎么做?谢谢
我为游戏编写了机器人。要检测寿命何时变低,您可以扫描特定像素颜色并使用样本值对其进行测试(例如,您可以捕获矩形中间的像素,如果它是绿色,则寿命超过一半)。
我还做了截图,剪了一些区域,然后保存为位图。在一个游戏中我加载了它们,然后我每秒截屏并检查其中一些位图是否出现在屏幕截图中。
要在 C# 中捕获屏幕,您可以使用 Graphics 的 CopyFromScreen 方法:
var screen = new Bitmap(Screen.PrimaryScreen.Bounds.Width,
Screen.PrimaryScreen.Bounds.Height,
PixelFormat.Format32bppArgb);
var graphics = Graphics.FromImage(screen );
graphics.CopyFromScreen(Screen.PrimaryScreen.Bounds.X,
Screen.PrimaryScreen.Bounds.Y,
0, 0,
Screen.PrimaryScreen.Bounds.Size,
CopyPixelOperation.SourceCopy);