mirror of
https://github.com/introlab/rtabmap.git
synced 2026-09-02 17:40:23 +08:00
Fixed build with OpenCV 3.2.0 (including opencv_contrib)
This commit is contained in:
@@ -714,7 +714,7 @@ class RTABMAP_EXP Parameters
|
||||
RTABMAP_PARAM(Aruco, MarkerLength, float, 0.1, "The length (m) of the markers' side.");
|
||||
RTABMAP_PARAM(Aruco, VarianceLinear, float, 0.001, "Linear variance to set on marker detections.");
|
||||
RTABMAP_PARAM(Aruco, VarianceAngular, float, 0.001, "Angular variance to set on marker detections. Set to >=9999 to use only position (xyz) constraint in graph optimization.");
|
||||
RTABMAP_PARAM(Aruco, CornerRefinementMethod, int, 0, "Corner refinement method (0: None, 1: Subpixel, 2:contour, 3: AprilTag 2)");
|
||||
RTABMAP_PARAM(Aruco, CornerRefinementMethod, int, 0, "Corner refinement method (0: None, 1: Subpixel, 2:contour, 3: AprilTag 2). For OpenCV <3.3.0, this is \"doCornerRefinement\" parameter: set 0 for false and 1 for true.");
|
||||
|
||||
public:
|
||||
virtual ~Parameters();
|
||||
|
||||
@@ -36,7 +36,11 @@ MarkerDetector::MarkerDetector(const ParametersMap & parameters)
|
||||
markerLength_ = Parameters::defaultArucoMarkerLength();
|
||||
dictionaryId_ = Parameters::defaultArucoDictionary();
|
||||
detectorParams_ = cv::aruco::DetectorParameters::create();
|
||||
#if CV_MAJOR_VERSION > 3 || (CV_MAJOR_VERSION == 3 && CV_MINOR_VERSION >=3)
|
||||
detectorParams_->cornerRefinementMethod = Parameters::defaultArucoCornerRefinementMethod();
|
||||
#else
|
||||
detectorParams_->doCornerRefinement = Parameters::defaultArucoCornerRefinementMethod()!=0;
|
||||
#endif
|
||||
parseParameters(parameters);
|
||||
#endif
|
||||
}
|
||||
@@ -58,7 +62,13 @@ void MarkerDetector::parseParameters(const ParametersMap & parameters)
|
||||
detectorParams_->minCornerDistanceRate = 0.05;
|
||||
detectorParams_->minDistanceToBorder = 3;
|
||||
detectorParams_->minMarkerDistanceRate = 0.05;
|
||||
#if CV_MAJOR_VERSION > 3 || (CV_MAJOR_VERSION == 3 && CV_MINOR_VERSION >=3)
|
||||
Parameters::parse(parameters, Parameters::kArucoCornerRefinementMethod(), detectorParams_->cornerRefinementMethod);
|
||||
#else
|
||||
int doCornerRefinement = detectorParams_->doCornerRefinement?1:0;
|
||||
Parameters::parse(parameters, Parameters::kArucoCornerRefinementMethod(), doCornerRefinement);
|
||||
detectorParams_->doCornerRefinement = doCornerRefinement!=0;
|
||||
#endif
|
||||
detectorParams_->cornerRefinementWinSize = 5;
|
||||
detectorParams_->cornerRefinementMaxIterations = 30;
|
||||
detectorParams_->cornerRefinementMinAccuracy = 0.1;
|
||||
|
||||
Reference in New Issue
Block a user