我有超过3000张图片,1500张小图片& 1500大图。
我想检查小图像是否与大图像相同,例如large image & small image。
我使用以下代码检查图像但是对所有图像(相同与否)都返回错误结果可以帮助我解决这个问题吗?
public static bool IsEqual(this BitmapImage image1, BitmapImage image2)
{
if (image1 == null || image2 == null)
{
return false;
}
return image1.ToBytes().SequenceEqual(image2.ToBytes());
}
public static byte[] ToBytes(this BitmapImage image)
{
byte[] data = new byte[] { };
if (image != null)
{
try
{
var encoder = new BmpBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(image));
using (MemoryStream ms = new MemoryStream())
{
encoder.Save(ms);
data = ms.ToArray();
}
return data;
}
catch (Exception ex)
{
}
}
return data;
}
答案 0 :(得分:2)
由于尺寸差异,您需要检查这些图像的相似程度。
要测量相似性,您需要一种相关技术。
我认为最好执行以下步骤:
你需要玩一下,因为你会得到一些错误。但是调整阈值可以使你获得90%以上的准确率。
如果您想要更多数学方法,请检查维基百科的相关性并尝试实施更好的技术: