【发布时间】: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
如何解决?
【问题讨论】: