/// <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); }
/// <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; }