情况有点独特,我已经能够找到的任何东西,如下:如果我拍了两张相似图片的照片,我希望能够突出显示不同的功能在两个图像中。例如以下两个孩子的现场差异游戏:
图像的差异将是缺失/添加的位和/或颜色变化,以及通过不做任何比逐像素比较更聪明的原始图像文件可以容易地检测到的差异类型。然而,他们受到光线波动和摄影不精确的影响,我需要一个更宽松/更聪明的算法。
如您所见,如果重叠,图像不一定完美排列。
这个问题被标记为语言无关,因为我希望答案指向相关算法,但是如果它们存在,我也会对当前的实现感兴趣,特别是在Java,Ruby或C中。
答案 0 :(得分:5)
以下方法应该有效。 OpenCV中提供了所有这些功能。看看this example计算单应性。
答案 1 :(得分:4)
我的一般方法是使用光流来对齐两个图像,并在对齐后逐个像素地进行比较。
但是,对于具体情况,如果两个图像与您的情况有很大不同,则标准光流(OpenCV等)可能会失败。如果确实失败了,那么即使图像完全不同,最近的光流技术也应该起作用。例如,您可能希望查看有关使用稀疏对应关系解决此问题的SIFT flows by Ce Liu et al的文章。