在屏幕上查找图像

时间:2011-11-09 10:22:23

标签: c# image

我想在屏幕上找到一张图片。我将图像保存在计算机上并使用Image.FromFile()加载。

我正在使用

创建屏幕截图
var image = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height, PixelFormat.Format32bppArgb);
var gfx = Graphics.FromImage(image);
gfx.CopyFromScreen(Screen.PrimaryScreen.Bounds.X, Screen.PrimaryScreen.Bounds.Y, 0, 0, Screen.PrimaryScreen.Bounds.Size, CopyPixelOperation.SourceCopy);
return image;

但现在我不知道如何在屏幕图像中搜索第一张图片。

我在stackoverflow上搜索了一下,发现了一些答案,但没有适当的例子。

由于我的C#技能不是最好的,我可以通过一个基本的例子更好地工作,然后我可以理解和使用它以了解更多信息。

有人可以提供这样的样品吗?

1 个答案:

答案 0 :(得分:1)

您所描述的内容称为模板匹配。您有一个小图像(模板)位于较大图像中的某个位置。

有很多关于算法的信息,但我真的建议你改用库。

OpenCV是一个众所周知的开源库,它非常容易使用。 OpenCV是用C ++编写的,因此在C#环境中使用它可能很困难。幸运的是,还有一个名为EmguCV的C#端口,也可以免费使用。

http://www.emgu.com/wiki/index.php/Main_Page