Beispiel #1
0
        void Update()
        {
            var output = new ArucoOutput();

            while (_currentOutput.Dequeue(out output))
            {
                // TODO: processor only processes markers on left image at the moment!
                foreach (var marker in output.markers_left)
                {
                    var markerPose = ProcessOutput(marker);
                    OnNewPoseDetected(markerPose);
                }
            }

            // TODO: refactor
            bool hasPropertyChanged =
                (_prevUseTracker != UseTracker) ||
                (_prevTrackerErrorRatio != TrackerErrorRatio);

            if (hasPropertyChanged)
            {
                _arProcessor.UseTracker        = UseTracker;
                _arProcessor.TrackerErrorRatio = TrackerErrorRatio;
                UpdateProcessorProperties();
            }
        }
Beispiel #2
0
        void Update()
        {
            var output = new ArucoOutput();

            while (_currentOutput.Dequeue(out output))
            {
                // TODO: processor only processes markers on left image at the moment!
                foreach (var marker in output.markers_left)
                {
                    var markerPose = ProcessOutput(marker);

                    if (DetectedPoses.ContainsKey(marker.id))
                    {
                        DetectedPoses[marker.id] = markerPose;
                    }
                    else
                    {
                        DetectedPoses.Add(marker.id, markerPose);
                    }

                    if (NewPoseDetected != null)
                    {
                        NewPoseDetected(markerPose);
                    }
                }
            }

            // TODO: refactor
            bool hasPropertyChanged =
                (_prevMarkerSize != MarkerSizeInMeter) ||
                (_prevTrackerErrorRatio != TrackerErrorRatio);

            if (hasPropertyChanged)
            {
                _arProcessor.MarkerSizeInMeter = MarkerSizeInMeter;
                _arProcessor.TrackerErrorRatio = TrackerErrorRatio;

                _arProcessor.UpdateProperties();

                _prevMarkerSize        = MarkerSizeInMeter;
                _prevTrackerErrorRatio = TrackerErrorRatio;
            }
        }