我无法想出一种方法来描述我想要更好理解的问题区域,所以我设置了以下方案以帮助说明
考虑到下面的图像,我将如何编写可以找到与位置1中的图像匹配的所有幸福面孔(称为模板图像)并忽略位置2和5中的悲伤面部图像的东西。
...
我不是在寻找任何人为我解决它,我只需要一个有见地的第一步让我开始,因为它是我未知的领域。
这会叫什么?我应该查询谷歌和堆栈溢出,以便找到有用的信息?有没有人有一个可以帮助我入门的库或代码片段?
另外,我是一名.NET / C#程序员,所以任何碰巧用我母语的东西都会受到特别赞赏,但不是一个交易破坏者。
提前致谢... 麦克
答案 0 :(得分:2)
请参阅以下链接,以帮助您使用AForge.net识别图像 Detecting some simple shapes in images
答案 1 :(得分:1)
最简单的技术可能是template matching。但是,示例图像的差异非常小,因此可能很难区分示例中的图像1和图像。
答案 2 :(得分:1)
该技术实际上取决于实际情况。这有几个名称,例如基于内容的检索,模板匹配,图像描述等。
我的建议:
如果您的场景类似于面部,以已知大小的已知角度旋转,请寻找更简单的技术,例如两个图像的相关性。为每个角度做它,你得到它。
如果您知道图像之间的唯一差异是旋转,这意味着您只有旋转的快乐和悲伤面,没有其他扭曲,您可以寻找旋转不变的匹配方法。傅里叶理论可以帮助你,也可以映射与相关性相关的极坐标。
在最糟糕的情况下,如果您有多种变体,则需要查看图像描述符和模式匹配技术。这些也取决于图像类型,并且有几种。如果你最终得到这些,你将有一个带有一些库/代码的方案来从图像中提取特征和分类器,告诉你哪些是相同的,哪些不是,有某种自信(如距离测量)特征向量之间。)
答案 3 :(得分:1)
可能的算法是:
这种方向直方图对于“快乐”与“悲伤”的笑脸是截然不同的。
玩得开心。
答案 4 :(得分:0)
在这种情况下完成工作的简单穷人算法可能是。
快速,脏和硬编码到这个特定的图像,但它会很快完成工作。
AForge选项可能是一种更好的通用方法。