/// <summary>
        /// ImageRectifierControl constructor
        /// </summary>
        /// <param name="binding"></param>
        public ImageRectifierControl(ISkillBinding binding) : base(binding)
        {
            // Update the view of the initial binding values
            m_ImageRectifierBindingFeatureValues = ExtractBindingValues(binding);
            m_interactiveControl = new ImageRectifierInteractiveControl();
            m_interactiveControl.InterpolationTypeChanged += ImageRectifierInteractiveControl_InterpolationTypeChanged;

            m_imageGrid.Children.Add(m_canvas);
            m_image.SetValue(Canvas.ZIndexProperty, -1);
            m_image.SizeChanged += Image_SizeChanged;

            // Add InputQuad control
            m_inputQuadRenderer = new InteractiveQuadRenderer(ref m_canvas);
            m_inputQuadRenderer.CornersChanged         += InteractiveQuadRenderer_CornersChanged;
            m_inputQuadRenderer.CornersChangeCompleted += InteractiveQuadRenderer_CornersChangeCompleted;
            m_inputQuadRenderer.Update(m_ImageRectifierBindingFeatureValues.InputQuad);

            Children.Add(m_interactiveControl);
            m_interactiveControl.UpdateDisplayedInputValues(m_ImageRectifierBindingFeatureValues);
            m_interactiveControl.UpdateInterpolationType(m_ImageRectifierBindingFeatureValues.InterpolationType);
        }
        /// <summary>
        ///  QuadDetectorControl constructor
        /// </summary>
        /// <param name="binding"></param>
        public QuadDetectorControl(ISkillBinding binding) : base(binding)
        {
            // Update the view of the initial binding values
            m_quadDetectorBindingFeatureValues = ExtractBindingValues(binding);
            m_interactiveControl = new QuadDetectorSkillInteractiveControl();

            m_imageGrid.Children.Add(m_canvas);
            m_image.SetValue(Canvas.ZIndexProperty, -1);
            m_image.SizeChanged += Image_SizeChanged;

            // Add SubRectangleMargin control
            foreach (var margin in m_margins)
            {
                m_canvas.Children.Add(margin);
            }
            m_interactiveControl.SubMargingValueChanged            += QuadDetectorSkillInteractiveControl_SubMargingValueChanged;
            m_interactiveControl.MaxQuadValueChanged               += QuadDetectorSkillInteractiveControl_MaxQuadValueChanged;
            m_interactiveControl.NumberOfPixelsPerEdgeValueChanged += QuadDetectorSkillInteractiveControl_NumberOfPixelsPerEdgeValueChanged;

            // Add Quad results control
            m_quadsResultRenderer           = new QuadSetRenderer(ref m_canvas, 10);
            m_quadsResultRenderer.IsVisible = false;

            // Add BaseQuad control
            m_baseQuadRenderer                                    = new InteractiveQuadRenderer(ref m_canvas);
            m_baseQuadRenderer.IsVisible                          = false;
            m_baseQuadRenderer.CornersChanged                    += InteractiveQuadRenderer_CornersChanged;
            m_baseQuadRenderer.CornersChangeCompleted            += InteractiveQuadRenderer_CornersChangeCompleted;
            m_interactiveControl.SpecifyBaseQuadCheckedUnchecked += QuadDetectorSkillInteractiveControl_SpecifyBaseQuadCheckedUnchecked;

            // Add CenterPoint control
            m_centerPointControl.ManipulationDelta     += QuadRendererCenterPoint_ManipulationDelta;
            m_centerPointControl.ManipulationCompleted += QuadRendererCenterPoint_ManipulationCompleted;
            Mouse.SetCursor(m_centerPointControl, Windows.UI.Core.CoreCursorType.Pin);
            m_canvas.Children.Add(m_centerPointControl);
            m_interactiveControl.CenterPointCheckedUnchecked += QuadDetectorSkillInteractiveControl_CenterPointCheckedUnchecked;

            Children.Add(m_interactiveControl);
            m_interactiveControl.UpdateDisplayedInputValues(m_quadDetectorBindingFeatureValues);
        }
Пример #3
0
        /// <summary>
        ///  CurvedEdgesDetectorControl constructor
        /// </summary>
        /// <param name="binding"></param>
        public CurvedEdgesDetectorControl(ISkillBinding binding) : base(binding)
        {
            // Update the view of the initial binding values
            m_interactiveControl = new CurvedEdgesDetectorSkillInteractiveControl();

            m_imageGrid.Children.Add(m_canvas);
            m_image.SetValue(Canvas.ZIndexProperty, -1);
            m_image.SizeChanged += Image_SizeChanged;

            // Add line result control
            m_linesResultRenderer = new PolylineRenderer(ref m_canvas);

            m_linesResultRenderer.IsVisible = false;

            Children.Add(m_interactiveControl);
            m_interactiveControl.UpdateBaseQuadCorners(m_inputQuadCorners);

            // Add control to manipulate InputQuad
            m_inputQuadRenderer           = new InteractiveQuadRenderer(ref m_canvas);
            m_inputQuadRenderer.IsVisible = true;
            m_inputQuadRenderer.Update(m_inputQuadCorners);
            m_inputQuadRenderer.CornersChanged         += InteractiveQuadRenderer_CornersChanged;
            m_inputQuadRenderer.CornersChangeCompleted += InteractiveQuadRenderer_CornersChangeCompleted;
        }