识别屏幕截图中所有出现的图像列表(在图像中查找图像)

时间:2017-10-15 17:25:40

标签: image opencv machine-learning tensorflow computer-vision

我想在屏幕截图中识别所有出现的图像列表并获取表情符号的标签(例如" smile")。

图片列表包含所有表情符号(full list): 等等......

这是屏幕截图(show large):

屏幕截图可以有不同的分辨率和表情符号出现的不同高度。

我的想法是:

  • 使用OpenCV和各种过滤并迭代所有表情符号图像(可能使用template matching
  • 使用像tensorflow这样的神经网络,用emojis训练自己的模型

你会怎么做?

1 个答案:

答案 0 :(得分:1)

有几种经典方法可以解答您的问题:

如果屏幕截图与表情符号基本图片之间的强度不同,则应使用标准化关联。

这两种方法都会为您提供包含峰值的图像,并且您的表情符号将定位在此图像的局部最大值处。 由于你的表情符号彼此非常相似,你必须在相关图像上使用一个阈值,以区分你正在测试的表情符号和看起来像他的表情符号。

此方法可能非常耗时,但可以通过使用图像金字塔轻松加速。 图像金字塔是一组图像,其中第一个是您的图像,第二个是第一个的子采样,系数为2,依此类推: https://en.wikipedia.org/wiki/Pyramid_(image_processing)。 然后将相关性应用于金字塔的顶层以找到大致位置,然后在顶部 - 大约1个位置围绕大约位置,依此类推。

关于您想要尝试的神经网络或其他机器学习方法,它们是非常重的解决方案,并且您有一个非常简单的问题,所以您应该正常地不需要它们。 您可以获得所需的精确图像,无需旋转,变形或强度变化,模板匹配应该非常有效。