// ArucoObjectTracker methods public override void Activate(IArucoObjectsTracker arucoTracker) { base.Activate(arucoTracker); // Initialize the properties and the ArUco objects MarkerCorners = new Dictionary <Aruco.Dictionary, Std.VectorVectorPoint2f> [arucoCamera.CameraNumber]; MarkerIds = new Dictionary <Aruco.Dictionary, Std.VectorInt> [arucoCamera.CameraNumber]; RejectedCandidateCorners = new Dictionary <Aruco.Dictionary, Std.VectorVectorPoint2f> [arucoCamera.CameraNumber]; MarkerRvecs = new Dictionary <Aruco.Dictionary, Std.VectorVec3d> [arucoCamera.CameraNumber]; MarkerTvecs = new Dictionary <Aruco.Dictionary, Std.VectorVec3d> [arucoCamera.CameraNumber]; DetectedMarkers = new Dictionary <Aruco.Dictionary, int> [arucoCamera.CameraNumber]; for (int cameraId = 0; cameraId < arucoCamera.CameraNumber; cameraId++) { MarkerCorners[cameraId] = new Dictionary <Aruco.Dictionary, Std.VectorVectorPoint2f>(); MarkerIds[cameraId] = new Dictionary <Aruco.Dictionary, Std.VectorInt>(); RejectedCandidateCorners[cameraId] = new Dictionary <Aruco.Dictionary, Std.VectorVectorPoint2f>(); MarkerRvecs[cameraId] = new Dictionary <Aruco.Dictionary, Std.VectorVec3d>(); MarkerTvecs[cameraId] = new Dictionary <Aruco.Dictionary, Std.VectorVec3d>(); DetectedMarkers[cameraId] = new Dictionary <Aruco.Dictionary, int>(); foreach (var arucoObjectDictionary in arucoTracker.ArucoObjects) { Aruco.Dictionary dictionary = arucoObjectDictionary.Key; MarkerCorners[cameraId].Add(dictionary, new Std.VectorVectorPoint2f()); MarkerIds[cameraId].Add(dictionary, new Std.VectorInt()); RejectedCandidateCorners[cameraId].Add(dictionary, new Std.VectorVectorPoint2f()); MarkerRvecs[cameraId].Add(dictionary, new Std.VectorVec3d()); MarkerTvecs[cameraId].Add(dictionary, new Std.VectorVec3d()); DetectedMarkers[cameraId].Add(dictionary, 0); } } }
// ArucoObjectTracker methods public override void Activate(IArucoObjectsTracker arucoTracker) { base.Activate(arucoTracker); DiamondCorners = new Dictionary <Aruco.Dictionary, Std.VectorVectorPoint2f> [arucoCamera.CameraNumber]; DiamondIds = new Dictionary <Aruco.Dictionary, Std.VectorVec4i> [arucoCamera.CameraNumber]; DetectedDiamonds = new Dictionary <Aruco.Dictionary, int> [arucoCamera.CameraNumber]; DiamondRvecs = new Dictionary <Aruco.Dictionary, Std.VectorVec3d> [arucoCamera.CameraNumber]; DiamondTvecs = new Dictionary <Aruco.Dictionary, Std.VectorVec3d> [arucoCamera.CameraNumber]; for (int cameraId = 0; cameraId < arucoCamera.CameraNumber; cameraId++) { DiamondCorners[cameraId] = new Dictionary <Aruco.Dictionary, Std.VectorVectorPoint2f>(); DiamondIds[cameraId] = new Dictionary <Aruco.Dictionary, Std.VectorVec4i>(); DetectedDiamonds[cameraId] = new Dictionary <Aruco.Dictionary, int>(); DiamondRvecs[cameraId] = new Dictionary <Aruco.Dictionary, Std.VectorVec3d>(); DiamondTvecs[cameraId] = new Dictionary <Aruco.Dictionary, Std.VectorVec3d>(); foreach (var arucoObjectDictionary in arucoTracker.ArucoObjects) { Aruco.Dictionary dictionary = arucoObjectDictionary.Key; DiamondCorners[cameraId].Add(dictionary, new Std.VectorVectorPoint2f()); DiamondIds[cameraId].Add(dictionary, new Std.VectorVec4i()); DetectedDiamonds[cameraId].Add(dictionary, 0); DiamondRvecs[cameraId].Add(dictionary, new Std.VectorVec3d()); DiamondTvecs[cameraId].Add(dictionary, new Std.VectorVec3d()); } } }
// Methods /// <summary> /// Configure and activate the tracker. /// </summary> public virtual void Activate(IArucoObjectsTracker arucoTracker) { this.arucoTracker = arucoTracker; arucoCamera = arucoTracker.ArucoCamera; arucoCameraUndistortion = arucoTracker.ArucoCameraUndistortion; arucoCameraDisplay = arucoTracker.ArucoCameraDisplay; IsActivated = true; arucoTracker.DictionaryAdded += ArucoObjectsController_DictionaryAdded; arucoTracker.DictionaryRemoved += ArucoObjectsController_DictionaryRemoved; }