Реализация Aruco DetectMarkers Emgu C # - PullRequest
0 голосов
/ 15 мая 2018

Я хочу использовать функцию detectMarkers для обнаружения маркеров ArUco. Я использую Emgu, чтобы написать код на C #. Я получаю несколько ошибок при использовании функции. Я следую примеру в этой ссылке https://docs.opencv.org/3.4/d5/dae/tutorial_aruco_detection.html. Это мой код:

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 уже есть значения по умолчанию. Эти значения по умолчанию не в порядке, или есть другая причина, почему я получаю эти ошибки?

Помощь будет очень признательна!

1 Ответ

0 голосов
/ 28 мая 2018

Я снова посмотрел на это.Перед вызовом функции DetectMarkers я объявляю все переменные Parameters, как я делаю, в закомментированном разделе моего кода с несколькими переменными.Итак, теперь я объявляю каждую переменную, которая есть у Parameters.Я просто даю ему значение по умолчанию.Теперь это работает.

...