C# EmguCV 错误 "OpenCV: u != 0"

C# EmguCV error "OpenCV: u != 0"

我在尝试匹配某些照片时不断收到此 OpenCV: u != 0 错误。我的方法看起来像这样。 ImageFile class 有一些变量。即使我试图匹配一张照片,它也会这样做。堆栈跟踪是:

Unhandled Exception: Emgu.CV.Util.CvException: OpenCV: u != 0

at Emgu.CV.CvInvoke.CvErrorHandler(Int32 status, IntPtr funcName, IntPtr errMsg, IntPtr fileName, Int32 line, IntPtr userData)

at Emgu.CV.Features2D.Feature2DInvoke.CvFeature2DDetectAndCompute(IntPtr feature2D, IntPtr image, IntPtr mask, IntPtr keypoints, IntPtr descriptors, Boolean useProvidedKeyPoints)

at Emgu.CV.Features2D.Feature2D.DetectAndCompute(IInputArray image, IInputArray mask, VectorOfKeyPoint keyPoints, IOutputArray descriptors, Boolean useProvidedKeyPoints)

public async Task<List<ImageFile>> BeginSearchAsync()
{
    var foundImageFiles = new List<ImageFile>();
    Mat img = CvInvoke.Imread(_imageFileToBeSearched.FileInfo.FullName, ImreadModes.AnyColor);

    var thredi = new Thread(() =>
    {
        foreach (var imageFile in _listOfSearchableImageFiles)
        {
            try
            {
                using (var tempImage = CvInvoke.Imread(imageFile.FileInfo.FullName, ImreadModes.AnyColor))
                {
                    var result = DrawMatches.Draw(tempImage, img, out long matchTime, out long score);
                    var window = new ResultWindow(result, score);
                    window.ShowDialog();
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"Error during matching file {imageFile.Name}");
                Console.WriteLine(ex.Message);
            }
        }
    });

    thredi.SetApartmentState(ApartmentState.STA);
    thredi.Start();
    return foundImageFiles;
}

该异常似乎表明应用占用了太多内存。就我而言,我的照片质量似乎太好了。将它们减少到一半解决了问题。