异常未处理:Emgu.CV.Util.CvException:'OpenCV: '



我正试图在直播视频流中的两帧之间找到匹配的关键点。但我遇到了";异常未处理";错误以下是错误的详细信息:错误详细信息

这是我的问题课:

public static VectorOfKeyPoint[] Matches(List<Mat> imList)
{
int k = 2;
double uniquenessT = 0.8;
Mat homography = new Mat();
Mat mask = new Mat();
VectorOfKeyPoint modelKeyPoints = new VectorOfKeyPoint();
VectorOfKeyPoint observedKeyPoints = new VectorOfKeyPoint();
VectorOfVectorOfDMatch matches = new VectorOfVectorOfDMatch();
using (UMat uModelImage = imList[0].GetUMat(Emgu.CV.CvEnum.AccessType.Read))
using (UMat uObservedImage = imList[1].GetUMat(Emgu.CV.CvEnum.AccessType.Read))
{
FastFeatureDetector fastCPU = new FastFeatureDetector(10, true);
UMat modelDescriptors = new UMat();
fastCPU.DetectAndCompute(uModelImage, null, modelKeyPoints, modelDescriptors, false);
UMat observedDescriptors = new UMat();
fastCPU.DetectAndCompute(uObservedImage, null, observedKeyPoints, observedDescriptors, false);
BFMatcher matcher = new BFMatcher(DistanceType.L2);
matcher.Add(modelDescriptors);
matcher.KnnMatch(observedDescriptors, matches, k, null);
mask = new Mat(matches.Size, 1, Emgu.CV.CvEnum.DepthType.Cv8U, 1);
mask.SetTo(new MCvScalar(255));
Features2DToolbox.VoteForUniqueness(matches, uniquenessT, mask);
int nonZeroCount = CvInvoke.CountNonZero(mask);
if (nonZeroCount >= 4)
{
nonZeroCount = Features2DToolbox.VoteForSizeAndOrientation(modelKeyPoints, observedKeyPoints,
matches, mask, 1.5, 20);
if (nonZeroCount >= 4)
homography = Features2DToolbox.GetHomographyMatrixFromMatchedFeatures(modelKeyPoints,
observedKeyPoints, matches, mask, 2);
}
VectorOfKeyPoint[] result = null;
if (homography != null)
{
result[0] = modelKeyPoints;
result[1] = observedKeyPoints;
}
return result;
}
}

´´

谢谢你的帮助。

感谢所有让我自己解决问题的人。代码上有更改。

using(ORBDetector detector = new ORBDetector())
{
detector.DetectAndCompute(uModelImage, null, modelKeyPoints, modelDescriptors, false);
detector.DetectAndCompute(uObservedImage, null, observedKeyPoints, 
observedDescriptors, false);

相关内容

最新更新