簡體   English   中英

C#EmguCV錯誤“ OpenCV:u!= 0”

[英]C# EmguCV error “OpenCV: u != 0”

嘗試匹配一些照片時,我不斷收到此OpenCV: u != 0錯誤。 我的方法看起來像這樣。 ImageFile類具有一些變量。 即使我要匹配一張照片,它也會這樣做。 Stacktrace是:

未處理的異常:Emgu.CV.Util.CvException:OpenCV:u!= 0

在Emgu.CV.CvInvoke.CvErrorHandler(Int32狀態,IntPtr函數名稱,IntPtr errMsg,IntPtr文件名,Int32行,IntPtr用戶數據)

在Emgu.CV.Features2D.Feature2DInvoke.CvFeature2DDetectAndCompute(IntPtr feature2D,IntPtr圖像,IntPtr掩碼,IntPtr關鍵點,IntPtr描述符,布爾useProvidedKeyPoints)

在Emgu.CV.Features2D.Feature2D.DetectAndCompute(IInputArray圖像,IInputArray掩碼,VectorOfKeyPoint鍵點,IOutputArray描述符,布爾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;
}

該異常似乎表明該應用占用了太多內存。 就我而言,我似乎對圖片的質量太高。 將它們減少一半可以解決問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM