我在比较图像时遇到异常
本文关键字:遇到 异常 图像 比较 | 更新日期: 2023-09-27 17:56:35
所以,我正在Windows窗体中处理我的项目,但遇到了一个小问题。在这个项目中,我必须比较多个图像,这些图像位于一个文件夹中,带有屏幕截图。
如果屏幕截图包含图像,则方法必须返回 true,否则必须返回 false。文件夹中的所有图像都是"PNG"格式,从代码文件中获取它们后,我正在将格式更改为"Format24bppRgb",并且在任何第三次比较中,它给了我"IndexOutOfRange"。
我使用以下代码将图像与屏幕截图一一进行比较:
string[] addressArray = Directory.GetFiles(Path.Combine(Directory.GetCurrentDirectory(), "Kartebi2"), "*.png");
string[] imageAddress = new string[addressArray.Length];
Bitmap[] bitmap1 = new Bitmap[36];
Bitmap[] bitmapImage = new Bitmap[36];
for (int i = 0; i < bitmap1.Length; i++)
{
bitmap1[i] = (Bitmap)System.Drawing.Image.FromFile(addressArray[i]);
bitmapImage[i] = Form1.ConvertToFormat(bitmap1[i], System.Drawing.Imaging.PixelFormat.Format24bppRgb);
}
for (int i = 0; i < bitmapImage.Length; i++)
{
if (CompareMethod.CompareImageMethod(bitmap, bitmapImage[i]))
imageAddress[i] = addressArray[i];
else
imageAddress[i] = null;
}
我正在使用以下比较方法:
public static bool CompareImageMethod(Bitmap screenshot, Bitmap template)
{
bool result;
ExhaustiveTemplateMatching tm = new ExhaustiveTemplateMatching(0.921f);
TemplateMatch[] matching = tm.ProcessImage(screenshot, template);
if (matching[0].Similarity > 0.95f)
result = true;
else result = false;
return result;
}
所以现在关于我的问题,在任何 3 rd 比较中,它都会给我以下异常:在此处输入图像描述
如果有人知道如何解决这个问题,请告诉我。我发布了一个类似的问题,但我要求比较方法(我不知道如何比较图像)。在这篇文章中,我询问了我在互联网上发现的有关比较功能的异常。
像这样更改代码;
if (matching.Length != 0 && matching[0].Similarity > 0.95f)