在桌面截图中查找徽标

Hos*_*hin 7 algorithm opencv image-processing computer-vision

我需要开发一个桌面应用程序

1.)有一个不同的应用程序标识列表(背景透明),例如IE,FIREFOX,CHROME,PHOTOSHOP等.

2.)用户将获取桌面的屏幕截图并保存图像.

3.)现在我的应用程序需要搜索截图图像中的所有徽标,并告诉所有徽标存在和位置.

4.)我使用OPENCV,它正在工作,但是当用户更改桌面背景并捕获屏幕截图时,它不起作用,因为徽标的透明区域获取桌面背景内容.

有人可以提供解决方案或图书馆开源,商业来做这项工作.

mpe*_*kov 8

使用互相关很容易做到这一点.

看看我对这个问题的回答.

基本上:

  • 从桌面图像和每个图标的一个模板图像开始
  • 将边缘检测(例如Sobel)应用于桌面图像和模板图像.
  • 丢弃原始桌面图像和模板,您将不再需要它们,因为我们将使用边缘检测图像
  • 对于每个模板
    • 像往常一样进行模板匹配
    • 阈值结果的最大值.如果它高于阈值,则在该位置处匹配.否则,没有匹配.

如果您的图标在桌面上的网格中对齐,则可以通过仅检查特定网格位置来加快处理速度.

编辑

您还可以通过了解要搜索的图标来节省大量时间.如果您有权访问文件系统,那么只需*.lnk在与桌面对应的目录中查找文件(或您可能感兴趣的任何其他扩展名)(不记得确切的是什么,但对于Windows7,它就像是这样c:\users\misha\desktop) .这将告诉您桌面上有哪些图标.这样您就可以在进行模板匹配之前缩短模板候选列表.