【发布时间】:2013-12-28 21:53:21
【问题描述】:
我有一张图片位于
C:\ImageOne.png
我可以说目录中有 20 张图片
C:\Images
如何将 ImageOne.png 与所有这些图像进行比较?
例子:
想象一下,我将一张 reCaptcha 图像保存为 C:\ImageOne.png
在位于 C:\Images 的文件夹中,我还有其他 reCaptcha 图像。
然后我需要一个可以在 C:\Images 中找到相同图像的代码
当前代码:
public static bool ImageCompareString(Bitmap firstImage, Bitmap secondImage)
{
MemoryStream ms = new MemoryStream();
firstImage.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
String firstBitmap = Convert.ToBase64String(ms.ToArray());
ms.Position = 0;
secondImage.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
String secondBitmap = Convert.ToBase64String(ms.ToArray());
if (firstBitmap.Equals(secondBitmap))
{
return true;
}
else
{
return false;
}
}
Bitmap img2 = new Bitmap(@"C:\ImageOne");
private void CheckCaptcha()
{
foreach (string s in Directory.GetFiles(@"C:\Images"))
{
Bitmap img1 = new Bitmap(s);
if (ImageCompareString(img1, img2) == true)
{
Logging("Identical");
}
else
{
Logging("Not Identical");
}
img1.Dispose();
}
}
【问题讨论】:
-
您希望此图像比较有多精确?到每一个比特?或者你需要一些更智能的算法?
-
您能否更具体地说明您需要什么帮助 - 查找/迭代目录中的文件、读取文件、将文件比较为字节序列/模糊图像比较,甚至可能是 OCR 并比较结果文本?
-
尽可能好,图片不超过 300x300
-
假设我有一个 reCaptcha 图像,然后是其他 reCaptcha 图像的文件夹,我需要从该文件夹中找到与第一个相同的图像
-
为什么需要查找recaptcha 图像?这至少可以说是假的。
标签: c# image-comparison