我目前正在做一个项目,我有一组白色背景的小图片。用户将向我提供包含上述图像之一的图像(完全是一个,保证),但图像将位于不同的背景上/将有其他对象不在其中,等等。
最初我认为这将是一些机器学习/图像比较算法的简单应用。但是,使用关键点匹配有时会失败,因为更突出的对象会与列表中的不同图像或类似图像匹配。
我认为这实际上不需要任何机器学习,因为图像是相同的,而且我的图像集非常小(大约 500 张图像),那么是否有任何图像比较算法可以正确处理我的情况?如果不是,我可以做什么样的预处理来提高准确性?
最佳答案
如果您知道图像与您所拥有的图像完全相同(姿势、方向、比例等没有变化)并且只有背景不同,我建议您使用简单的模板匹配。
因此,您需要做的第一件事就是从白色背景中提取小图像。这是一个简单的步骤,只需选择图像中不同于 255(或适当的背景值)的所有像素。这被认为是"template"。
第二阶段是对测试图像上的每个模板运行“模板匹配”算法,并将其值视为最大相关性。
在最后阶段选择给出最大相关值的模板作为所选图像。
有关示例代码和进一步说明,您可以查看 http://docs.opencv.org/2.4/doc/tutorials/imgproc/histograms/template_matching/template_matching.html
关于image - 从添加背景的第二张图像中使用的列表中查找图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41402809/