Aruco DetectMarkers实施Emgu C#
我想使用Aruco DetectMarkers实施Emgu C#,c#,visual-studio,emgucv,aruco,C#,Visual Studio,Emgucv,Aruco,我想使用detectMarkers功能检测ArUco标记。我正在使用Emgu用c#编写代码。当我使用该函数时,会出现多个错误。我在这个链接中遵循这个例子。这是我的代码: Dictionary.PredefinedDictionaryName name = new Dictionary.PredefinedDictionaryName(); Dictionary Dict = new Dictionary(name); VectorOfVectorOfPointF Corners = new Ve
detectMarkers
功能检测ArUco标记。我正在使用Emgu用c#编写代码。当我使用该函数时,会出现多个错误。我在这个链接中遵循这个例子。这是我的代码:
Dictionary.PredefinedDictionaryName name = new Dictionary.PredefinedDictionaryName();
Dictionary Dict = new Dictionary(name);
VectorOfVectorOfPointF Corners = new VectorOfVectorOfPointF();
VectorOfInt Ids = new VectorOfInt();
DetectorParameters Parameters = new DetectorParameters();
//If I uncomment this I get rid of some errors but new errors arise
/*
Parameters.AdaptiveThreshWinSizeMin = 5;
Parameters.AdaptiveThreshWinSizeMax = 21;
Parameters.AdaptiveThreshWinSizeStep = 4;
*/
VectorOfVectorOfPointF Rejected = new VectorOfVectorOfPointF();
ArucoInvoke.DetectMarkers(imgOriginal, Dict, Corners, Ids, Parameters, Rejected);
注释的三行错误为
CvException: OpenCV: params->adaptiveThreshWinSizeMin >= 3 && params->adaptiveThreshWinSizeMax >= 3
在三行未注释的情况下,会出现另一个错误
OpenCV: minPerimeterRate > 0 && maxPerimeterRate > 0 && accuracyRate > 0 && minCornerDistanceRate >= 0 && minDistanceToBorder >= 0
我是否需要为DetectorParameters
设置各种默认值?据我在文档中看到的,DetectorParameters
已经有了默认值。这些默认值不正常吗?还是我出现这些错误的另一个原因
非常感谢您的帮助 我又查过了。在调用
DetectMarkers
函数之前,我声明参数的所有变量
,就像我在代码的注释部分中使用一些变量一样。现在我声明参数
拥有的每个变量。我只是给它一个默认值。现在它工作了。我最近也遇到了同样的问题,并想出了另一个解决方案
出现这些错误的原因是newdetectorparameters()代码>不使用默认值创建新的参数对象
您可以使用DetectorParameters.GetDefault(),而不是自己设置每个参数代码>,然后如果需要默认值以外的内容,则更新特定参数
因此,只需替换:
DetectorParameters Parameters = new DetectorParameters();
与:
DetectorParameters Parameters = DetectorParameters.GetDefault();