图像比较算法

时间:2010-08-03 11:07:28

标签: c#

有人可以建议用于图像比较的算法吗?

2 个答案:

答案 0 :(得分:1)

如果你想比较图像本身,我可以推荐成熟的比较指标,如Peak signal-to-noise ratio(使用得非常广泛),或者Structural Similarity Index(旨在更接近地模拟人眼注意到的那种差异)。我建议重新使用现有的实现,因为这些算法所需的大量求和难以正确(简而言之,使用BigInteger而不是长累加器或双累加器)。

另外,请注意,两个图像可能使用不同的颜色空间对同一图像进行编码,因此您可能希望确保在比较图像之前将两个图像转换为使用相同的颜色空间。当然,如果图像被移动或以其他方式修改,您将需要使用某种形式的特征识别 - 请参阅所提到的Image comparison algorithm帖子。

答案 1 :(得分:0)

bool compare(unsigned char* f, size_t fs, unsigned char* s, size_t ss)
{
    if (fs != ss)
    {
        return false;
    }

    for (register int i=0; i < fs; i++) if (((f+i)*) != ((s+i)*))
    {
        return false;
    }

    return true;
}