【问题标题】:Emgu.CV.Util.CvException: OpenCV: layer_rows - 2 * min_margin > 0Emgu.CV.Util.CvException:OpenCV:layer_rows - 2 * min_margin > 0
【发布时间】:2021-04-28 17:56:42
【问题描述】:

我有这个例外:

Emgu.CV.Util.CvException: OpenCV: layer_rows - 2 * min_margin > 0

这是我的示例代码:

static void SampleFunction()
{
    string model = @"sample model image location";
    string observed = @"sample observed image location";
    Emgu.CV.Image<Emgu.CV.Structure.Gray, byte> modelImage = new Emgu.CV.Image<Emgu.CV.Structure.Gray, byte>(model);
    Emgu.CV.Image<Emgu.CV.Structure.Gray, byte> observedImage = new Emgu.CV.Image<Emgu.CV.Structure.Gray, byte>(observed);
    Custom.CustomSLAM slam = new Custom.CustomSLAM();
    Emgu.CV.Mat drawImage = slam.FindMatches(modelImage, observedImage);
    drawImage.Save("D:\\test.png");
}

Custom.CustomSLAM 是一个使用来自EmguCV example 的 SURF 特征检测器类的类 第一次尝试程序运行正常。第二次尝试出现问题

详情如下:

Emgu.CV.Util.CvException
HResult=0x80131500
Message=OpenCV: layer_rows - 2 * min_margin > 0
Source=Emgu.CV.World
StackTrace:
  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)
  at SURFFeature.DrawMatches.FindMatch(Mat modelImage, Mat observedImage, Int64& matchTime, VectorOfKeyPoint& modelKeyPoints, VectorOfKeyPoint& observedKeyPoints, VectorOfVectorOfDMatch matches, Mat& mask, Mat& homography) in C:\Users\TheUser\source\repos\SURFDetector\SURFDetector\SURFFeature.cs:line 82
  at SURFFeature.DrawMatches.Draw(Mat modelImage, Mat observedImage, Int64& matchTime) in C:\Users\TheUser\source\repos\SURFDetector\SURFDetector\SURFFeature.cs:line 128
  at Tracker_CameraTrackerModule.Custom.CustomSLAM.FindMatches(Image`2 modelImage, Image`2 observedImage) in C:\Users\TheUser\source\repos\Tracker_CameraTrackerModule\Tracker_CameraTrackerModule\Custom\CustomSLAM.cs:line 115
  at Tracker_CameraTrackerModule.Program.SampleFunction() in C:\Users\TheUser\source\repos\Tracker_CameraTrackerModule\Tracker_CameraTrackerModule\Program.cs:line 92
  at Tracker_CameraTrackerModule.Program.Main(String[] args) in C:\Users\TheUser\source\repos\Tracker_CameraTrackerModule\Tracker_CameraTrackerModule\Program.cs:line 74

如何解决?

【问题讨论】:

    标签: c# exception emgucv


    【解决方案1】:

    在寻找答案后,我决定更换

    surfCPU.DetectAndCompute(uModelImage, null, modelKeyPoints, modelDescriptors, false);
    // Also with the observed image
    

    // The same for observed image
    surfCPU.DetectRaw(modelImage, modelKeyPoints);
    surfCPU.Compute(modelImage, modelKeyPoints, modelDescriptors);
    

    然后工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-15
      • 1970-01-01
      • 2023-03-29
      • 2022-12-15
      • 2019-11-08
      • 1970-01-01
      • 1970-01-01
      • 2019-06-08
      相关资源
      最近更新 更多