C# 图像间的相似性#

C# 图像间的相似性#,c#,image,image-processing,bitmap,C#,Image,Image Processing,Bitmap,我需要检查两个图像有多相似。我需要有一个数字;百分比 public static void Compare(Bitmap bmp1, Bitmap bmp2) { int width; int height; if (bmp1.width < bmp2.width) { width = bmp1.width; } else { width = bmp2.width; } if (bmp1

我需要检查两个图像有多相似。我需要有一个数字;百分比

public static void Compare(Bitmap bmp1, Bitmap bmp2)
{
    int width;
    int height;
    if (bmp1.width < bmp2.width)
    {
        width = bmp1.width;
    }
    else
    {
        width = bmp2.width;
    }
    if (bmp1.heigth < bmp2.width)
    {
        heigth = bmp1.heigth;
    }
    else
    {
        heigth = bmp2.heigth;
    }
    int contador = 0;

    for (int x = 0; x < width; x++)
    {
        for (int y = 0; y < height; y++)
        {
            if (bmp1.GetPixel(x, y) == bmp2.GetPixel(x, y))
            {
                contador++
            }
        }
    }

    Messagebox.Show("The percent of similar is:" + (contador / (height * width) * 100).ToString());
}
公共静态无效比较(位图bmp1、位图bmp2)
{
整数宽度;
内部高度;
if(bmp1.width
这在图像大小不一样的情况下非常有效,因为例如,当将一条白线放在两幅图像中的一幅时,比较的百分比为0%,如果我将其放在开头,如果我将其放在结尾,那么它就不会将其考虑在内

我在网上冲浪时看起来很像,但我总是能找到高度和长度相同的图片


有没有办法知道一个图像和另一个图像有多相似?资源不是问题,因为通常图像都很小。

您的限制是什么?我的意思是,不同宽度和高度的图像如何“相似”?您是否必须搜索较大的图像以查找较小的图像等?如果这是为了图像识别,你可能想研究神经网络。是的,这里的第一个问题是:“相似”到底是什么?@CristianGerani看看我在
上的回答,我们有一张相同颜色的猫的图像,一只猫有胡子
,这就把一个简单的代码解决方案抛到了九霄云外。你将需要使用人工智能或某种类型的神经网络,如前所述,关于“图像相似性”的含义。。。此代码可能会在图像和重新保存为jpeg的相同图像之间提供0%的相似性。