c# – 在另一个大图像中快速找到一个较小的图像

c# – 在另一个大图像中快速找到一个较小的图像,第1张

概述无论如何要让这件事变得更快?现在,它就像source Image上的6秒,大小为1024×768,模板为50×50左右.这是使用AForge,如果有人知道其他更快更简单的方法请提交. 我要做的任务是在屏幕截图中找到一个较小的图像.最好快我的限制是1秒.我正在寻找的图像是一个红色矩形简单图像,截图更复杂. System.Drawing.Bitmap sourceImage = (Bitmap)Bit 无论如何要让这件事变得更快?现在,它就像source Image上的6秒,大小为1024×768,模板为50×50左右.这是使用AForge,如果有人知道其他更快更简单的方法请提交.
我要做的任务是在屏幕截图中找到一个较小的图像.最好快我的限制是1秒.我正在寻找的图像是一个红色矩形简单图像,截图更复杂.

System.Drawing.Bitmap sourceImage = (Bitmap)Bitmap.Fromfile(@"C:\SavedBMPs.jpg");System.Drawing.Bitmap template = (Bitmap)Bitmap.Fromfile(@"C:\SavedBMPs.jpg");// create template matching algorithm's instance// (set similarity threshold to 92.5%)ExhaustiveTemplateMatching tm = new ExhaustiveTemplateMatching(0.921f);// find all matchings with specifIEd above similarityTemplateMatch[] matchings = tm.ProcessImage(sourceImage,template);// highlight found matchingsBitmapData data = sourceImage.LockBits(    new Rectangle(0,sourceImage.WIDth,sourceImage.Height),ImageLockMode.ReaDWrite,sourceImage.PixelFormat);foreach (TemplateMatch m in matchings){        Drawing.Rectangle(data,m.Rectangle,color.White);    MessageBox.Show(m.Rectangle.Location.ToString());    // do something else with matching}sourceImage.UnlockBits(data);
解决方法 http://opencv.willowgarage.com/wiki/FastMatchTemplate – 在这里你可以找到有趣的想法,使用两个步骤加速模板匹配,首先尝试匹配下采样图像,当找到匹配原始的较小的搜索区域.

在matchTemplate函数中还有opencv实现模板匹配.此功能移植到GPU,可以显着加快速度.

请参阅以下内容

http://opencv.willowgarage.com/documentation/cpp/object_detection.html – matchTemplate函数.
http://opencv.willowgarage.com/wiki/OpenCV_GPU – 关于移植到GPU的OpenCV功能.

总结

以上是内存溢出为你收集整理的c# – 在另一个大图像中快速找到一个较小的图像全部内容,希望文章能够帮你解决c# – 在另一个大图像中快速找到一个较小的图像所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1234451.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存