C#如何在500-700毫秒左右的时间内找到大图像中的图像?

C#如何在500-700毫秒左右的时间内找到大图像中的图像?,c#,image,winforms,bitmap,scanning,C#,Image,Winforms,Bitmap,Scanning,我一直在研究图像识别,它在winforms中以每700毫秒727115个区域的速度使用位图抓取屏幕。get set pixel方法是一种减慢速度的方法,而我发现的任何其他方法我都不知道如何使用 Bitmap bitmap = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height); Graphics g = Graphics.FromImage(bitmap);

我一直在研究图像识别,它在winforms中以每700毫秒727115个区域的速度使用位图抓取屏幕。get set pixel方法是一种减慢速度的方法,而我发现的任何其他方法我都不知道如何使用

Bitmap bitmap = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height);
        Graphics g = Graphics.FromImage(bitmap);
        g.CopyFromScreen(896, 1250, 0, 0, bitmap.Size);

Bitmap myPic = Resources.SARCUT;
这将在屏幕上的区域创建图像,而myPic图像是需要在727115区域中找到的图像,如前所述。我尝试过使用一个RGE、Emgu和LockPixel,但我无法将位图转换为正确的格式,而且从来没有让它工作过


有什么建议吗?

位图和任何图像操作以及渲染都由.NET中的GDI+处理。GDI+虽然比其前身GDI快,但速度仍然非常慢。此外,您似乎正在执行复制操作,这将始终表示性能受到影响。如果确实需要提高性能,则不应使用GDI+框架,这意味着您必须直接在较低级别上操作位图。然而,最后一句话非常宽泛,因为它完全取决于您想要完成什么以及如何完成。最后,如果要比较两幅图像,应避免逐像素比较,而是逐字节比较,因为不需要考虑索引格式和值编码,因此比较速度更快。

--如果要更改格式,有一个新的位图(宽度、高度、像素格式)结构。如果您只需要屏幕的一部分,则应将位图缩小。你试图从屏幕上复制一些东西,可能在右边框和下边框之外。最后一行代码与你的请求无关?!