快速找到另一张大图像中的较小图像

2023-12-02

不管怎样,让这件事进展得更快?因为现在源图像大小为 1024x768,模板大小为 50x50 大约需要 6 秒。这是使用AForge,如果有人知道其他更快且更简单的方法,请提交。 我想做的任务是在屏幕截图中找到较小的图像。最好快一点,我的限制是 1 秒。我正在寻找的图像是一个红色矩形简单图像,屏幕截图更复杂。

System.Drawing.Bitmap sourceImage = (Bitmap)Bitmap.FromFile(@"C:\SavedBMPs\1.jpg");
System.Drawing.Bitmap template = (Bitmap)Bitmap.FromFile(@"C:\SavedBMPs\2.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 similarity

TemplateMatch[] matchings = tm.ProcessImage(sourceImage, template);
// highlight found matchings

BitmapData data = sourceImage.LockBits(
    new Rectangle(0, 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- 匹配模板功能。http://opencv.willowgarage.com/wiki/OpenCV_GPU- 关于移植到 GPU 的 OpenCV 功能。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

快速找到另一张大图像中的较小图像 的相关文章

随机推荐

  • 重复调用 Ng-Options 表达式

    我的设备有多个问题
  • 配置 Eclipse 以与 MSYS2 一起使用

    我使用 Eclipse Mars 和 MSYS2 Eclipse 无法识别我的 MSYS2 安装 它包含用于 32 位编译的 Mingw w64 我在互联网上找到的东西不起作用 我应该怎么办 好吧 聚会有点晚了 但看起来还有没什么特别的关于
  • ASP.NET-发送电子邮件

    我正在做一个航班预订系统 我想向用户发送一封电子邮件 其中包含他的旅行的电子机票 电子机票是使用从数据库中获取的预订 ID 以及前面页面中的其他详细信息 例如乘客姓名等 动态生成的 那么我怎样才能将动态生成的电子客票发送到他的电子邮件 ID
  • 与视频同步播放多个音轨之一

    我正在尝试在网络浏览器中播放视频 原始视频带有两个或多个音频流 每个音频流都采用不同的语言 我想让用户可以选择切换他们正在收听的音轨 我尝试使用audioTracks在视频元素上 但尽管说它在大多数浏览器中都支持在标志后面 至少在 Fire
  • req.body 是未定义的意思是应用程序

    我的应用程序有问题 告诉您问题所在的简单方法让我向您展示我的代码 var Meetup require models meetup module exports create function req res var meetup new
  • Mongodb和排序子数组

    不确定这是否可以做到 所以我想问一下 我有以下 mongodb s store abc offers spend 100 00 cashback 10 00 percentage 0 10 spend 50 00 cashback 5 00
  • 在运行时将环境变量传递到 Vue 应用程序

    如何访问 Vue 中的环境变量 这些变量在运行时而不是在构建期间传递给容器 堆栈如下 Vue CLI 3 0 5 Docker 库伯内斯 stackoverflow 和其他地方建议使用 env 文件传递 变量 和使用模式 的解决方案 但这是
  • 自定义域名映射到用户配置文件。

    目前 用户配置文件的格式为 website com username 这很好 然而 一些重度用户希望使用自定义域名 这与 Tumblr 类似 用户被授予 username tumblr com 的子域 但允许他们使用映射到该子域的外部域 我
  • MS Access SQL:聚合最小值但检索其他字段

    这可能是一个非常简单的问题 但我不知道如何在 MS Access 中解决它 以前可能已经回答过 但我没能找到 我有一个包含 3 列的表 col1 是对象 ID col2 和 col3 是测量值 我构建了一个查询 以便对于每个对象 我们都能在
  • 为什么我无法在 lambda 中捕获此按引用 ('&this')?

    我明白了正确的捕捉方式this 修改对象属性 在 lambda 中如下 auto f this 但我对我所看到的以下特点感到好奇 class C public void foo auto f this not captured auto f
  • Postgresql sqlalchemy 默认时间 now() 一遍又一遍地给出相同的时间

    我的表内有一个字段 即时间 time db Column db Time default datetime datetime now time nullable False 由于某种原因 它一直默认为同一时间而不是实际的系统时间 23 53
  • ExtJS 4 中的股票图表

    如何绘制数百点的股票图表或折线图 我在常规折线图中禁用了动画 但没有成功 而且仍然太重且太慢 我最近写了一篇关于在 Ext JS 4 中创建股票图表的博客文章 http www scottlogic co uk 2011 12 ext js
  • JPA 中的附加查询

    我有两节课InvitedPerson and Flight彼此之间具有一对一的关系 以下是它们的注释方式 public class InvitedTech OneToOne mappedBy invitedTech cascade Casc
  • 使用 VBscript 访问 JSON 数据中的所有值

    我必须做一些 vbscript 来处理来自网络服务器的 json 格式的输出 我正在使用我发现的一个名为 aspJSON 的旧 vbscript 代码片段 我认为它来自 www aspjson com 但该网站不再可用 我有这个 JSON
  • 将小数分隔符从“,”(逗号)转换为“.” (点)例如“7,5”至“7.5”

    是的 我知道 这些是本地化设置 但我不会告诉我的客户只更改我的应用程序的本地化设置 那么如何转换这些数字呢 或者如何更改给定范围的数字格式 那里需要点 用户可以输入逗号或点 甚至是逗号分隔的数字 例如 1 000 000 00 编辑 通过
  • 相当于 HTML 中的 include()

    我想知道是否有一种方法可以仅使用 html 将一些 html 内容包含在另一个 html 中 PHP 的替代品 这可能吗 EDIT 这引起了一些混乱 我需要的是 几乎是一个 html 标签 它具有将 html 文档包含在另一个文档中的功能
  • (PySpark)reduceByKey 之后的嵌套列表

    我确信这是非常简单的事情 但我没有找到与此相关的任何内容 我的代码很简单 stream stream map mapper stream stream reduceByKey reducer 没什么特别的 输出如下所示 key1 value
  • Git Shell 中的 Meteor (mingw)

    我正在尝试为 Meteor JS 编写教程 但无法使用 Windows 版 Github 附带的 Git Shell 使其正常工作 它找不到流星命令 它在cmd中运行 并且位于Windows环境路径中 我究竟做错了什么 运行一个 bat来自
  • 滚动android时列表视图项目改变位置?

    在我的应用程序中 我使用了自定义列表视图适配器 在列表视图项中我添加了另一个布局 因为在我的服务中 一个订单有任意数量的订单项目 为了显示订单项目 我将下面的订单项目布局添加到自定义列表视图项目中 它工作正常 但是当滚动列表视图时 数据会发
  • 快速找到另一张大图像中的较小图像

    不管怎样 让这件事进展得更快 因为现在源图像大小为 1024x768 模板大小为 50x50 大约需要 6 秒 这是使用AForge 如果有人知道其他更快且更简单的方法 请提交 我想做的任务是在屏幕截图中找到较小的图像 最好快一点 我的限制