C# 在屏幕上查找图像匹配

3
你好, 我知道之前已经有很多类似的问题被问过了,但我已经把它们都看了一遍,它们没有给我想要的答案。
我想做的是创建一个函数,如果存在指定的图像,该函数可以从屏幕获取图像的位置(X,Y)。
我将拍下屏幕截图,指定搜索区域(矩形),然后查看是否可以找到正在搜索的图像中第一个像素的颜色,如果它确实找到了,它将检查是否可以在图像高度n'宽度的距离内找到正在搜索的图像的最后一个像素。如果找到匹配项,则会检查中心点外10-20个像素,查看是否已找到匹配的图像。如果找到了,则返回第一个像素的坐标。
FindBitmap( int[] Image, int x1, int y1, int x2, int y2 )

图像将是可搜索图像的像素数组。

X1Y1将是搜索区域的起点,而X2Y2将是终点。

如果有人可以指导我创建此函数,我将非常感激。

1个回答

3

图像识别是一个相当复杂的概念。 根据您的问题,我假设您有“确切”的拷贝可用,并且正在尝试在屏幕上找到它。

首先在位图上使用GetPixel SetPixel,然后使用LockBits进行优化。这会大大提高性能。

顺便说一下,您的解决方案有点“蛮力”,还有更好的解决方案,例如:

请查看AForge .Net库。它包含了许多用于图像处理的函数。


关于交叉相关性:请参见我的过去问题,了解使用交叉相关性进行声音检测的实际用途和实现方式:https://dev59.com/VW025IYBdhLWcg3wtoQ_ - Daniel Hilgarth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接