【问题标题】:Finding the image from a list used in a second image that has an added background从添加了背景的第二张图像中使用的列表中查找图像
【发布时间】:2016-12-30 21:16:10
【问题描述】:

我目前正在做一个项目,我有一组白色背景的小图像。用户将向我提供包含上述图像之一的图像(完全是一个,保证),但图像将在不同的背景上/将有其他对象不在其中,等等。

最初我认为这将是一些机器学习/图像比较算法的简单应用。但是,使用关键点匹配有时会失败,因为更突出的对象会匹配到列表中的不同图像或类似图像。

我认为这实际上不需要任何 ML,因为图像是相同的,而且我的集合非常小(大约 500 张图像),那么是否有任何图像比较算法可以正确处理我的情况?如果没有,我可以做什么样的预处理来提高准确性?

【问题讨论】:

  • 一些示例图片可能会有所帮助。
  • @MarkSetchell 你是对的。当我回到我的工作站时,我会添加一些。

标签: image algorithm computer-vision comparison


【解决方案1】:

如果您知道图像与您所拥有的完全相同(姿势、方向、比例等没有变化),并且只有背景不同,我建议您使用简单的模板匹配。

因此,您需要做的第一件事就是从白色背景中提取小图像。这是一个简单的步骤,只需选择图像中不同于 255(或适当的背景值)的所有像素。这被认为是“模板”。

第二阶段是对测试图像上的每个模板运行“模板匹配”算法,并将其值视为最大相关性。

在最后阶段选择给出最大相关值的模板作为所选图像。

有关示例代码和进一步说明,您可以查看http://docs.opencv.org/2.4/doc/tutorials/imgproc/histograms/template_matching/template_matching.html

【讨论】:

  • 比例相同,但实际尺寸可能不同(即可能会被缩放),此外,由于捕获方式的性质,它可能会倾斜,但方向将是相对于背景的其余部分是正确的(即,不是图像看起来好像在水平屏幕上,而是看起来好像屏幕向前或向后倾斜,但在倾斜的那个平面上始终处于正确的方向),你认为它仍然有效吗?我还没有阅读文档,但我很快就会阅读。感谢您的回答!
  • 如果你能在它仍然有效之前纠正方向。如果你不能,我认为你需要寻找更先进的模板匹配算法,或者为每个模板创建一个具有不同方向的银行。
猜你喜欢
  • 2014-04-22
  • 1970-01-01
  • 2018-08-09
  • 1970-01-01
  • 2013-05-20
  • 1970-01-01
  • 2021-09-05
  • 2018-12-23
  • 1970-01-01
相关资源
最近更新 更多