private void SetupForConfigured(Template.RegistrationAlignmentMethod registrationAlignmentMethod) { selectedRegistrationAlignmentMethod = registrationAlignmentMethod; var registrationMethodType = selectedRegistrationAlignmentMethod.GetRegistrationMethod.GetRegistrationMethodType; registrationTypeTabControl.SelectedIndex = (int)registrationMethodType; switch (registrationMethodType) { case Template.RegistrationAlignmentMethod.RegistrationMethodType.KAZE: Template.RegistrationAlignmentMethod.KazeRegistrationMethod kazeRegistrationMethod = (Template.RegistrationAlignmentMethod.KazeRegistrationMethod)registrationAlignmentMethod.GetRegistrationMethod; Template.RegistrationAlignmentMethod.KazeRegistrationMethod.KazeData kazeData = kazeRegistrationMethod.GetKazeData; SetKazeData(kazeData); break; case Template.RegistrationAlignmentMethod.RegistrationMethodType.AKAZE: Template.RegistrationAlignmentMethod.AKazeRegistrationMethod aKazeRegistrationMethod = (Template.RegistrationAlignmentMethod.AKazeRegistrationMethod)registrationAlignmentMethod.GetRegistrationMethod; Template.RegistrationAlignmentMethod.AKazeRegistrationMethod.AKazeData aKazeData = aKazeRegistrationMethod.GetAKazeData; SetAKazeData(aKazeData); break; } genModelFeaturesBtn.Enabled = true; useStoredModelFeaturesToggle.Enabled = true; useStoredModelFeaturesToggle.ToggleState = selectedRegistrationAlignmentMethod.GetUseStoredModelFeatures? ToggleButtonState.Active : ToggleButtonState.Inactive; }
private void SetBtn_Click(object sender, EventArgs e) { Template.RegistrationAlignmentMethod.RegistrationMethodType registrationMethodType = (Template.RegistrationAlignmentMethod.RegistrationMethodType)registrationTypeTabControl.SelectedIndex; switch (registrationMethodType) { case Template.RegistrationAlignmentMethod.RegistrationMethodType.KAZE: Template.RegistrationAlignmentMethod.KazeRegistrationMethod.KazeData kazeData = GetKazeData(); Template.RegistrationAlignmentMethod.KazeRegistrationMethod kazeRegistrationMethod = new Template.RegistrationAlignmentMethod.KazeRegistrationMethod(kazeData); selectedRegistrationAlignmentMethod = new Template.RegistrationAlignmentMethod(pipelineIndex, methodName, kazeRegistrationMethod, templateImage, templateImage.Size); break; case Template.RegistrationAlignmentMethod.RegistrationMethodType.AKAZE: Template.RegistrationAlignmentMethod.AKazeRegistrationMethod.AKazeData aKazeData = GetAKazeData(); Template.RegistrationAlignmentMethod.AKazeRegistrationMethod aKazeRegistrationMethod = new Template.RegistrationAlignmentMethod.AKazeRegistrationMethod(aKazeData); selectedRegistrationAlignmentMethod = new Template.RegistrationAlignmentMethod(pipelineIndex, methodName, aKazeRegistrationMethod, templateImage, templateImage.Size); break; } if (useStoredModelFeaturesToggle.ToggleState == ToggleButtonState.Active) { selectedRegistrationAlignmentMethod.StoreModelFeatures(templateImage, true); } if (!genModelFeaturesBtn.Enabled) { genModelFeaturesBtn.Enabled = true; useStoredModelFeaturesToggle.Enabled = true; } useStoredModelFeaturesToggle.ToggleState = selectedRegistrationAlignmentMethod.GetUseStoredModelFeatures? ToggleButtonState.Active : ToggleButtonState.Inactive; }
private TabPageAdv CreateAlignmentMethodTabPage(Template.AlignmentMethod alignmentMethod) { TabPageAdv result = null; switch (alignmentMethod.GetAlignmentMethodType) { case Template.AlignmentMethodType.Anchors: Template.AnchorAlignmentMethod anchorAlignmentMethod = (Template.AnchorAlignmentMethod)alignmentMethod; AnchorsSettingsPanel anchorSP = new AnchorsSettingsPanel(anchorAlignmentMethod.GetAnchors); TabPageAdv anchorTabPage = new TabPageAdv(alignmentMethod.MethodName); anchorTabPage.Controls.Add(anchorSP); anchorSP.Dock = DockStyle.Fill; anchorTabPage.AutoScroll = true; result = anchorTabPage; break; case Template.AlignmentMethodType.Registration: Template.RegistrationAlignmentMethod registrationAlignmentMethod = (Template.RegistrationAlignmentMethod)alignmentMethod; switch (registrationAlignmentMethod.GetRegistrationMethod.GetRegistrationMethodType) { case Template.RegistrationAlignmentMethod.RegistrationMethodType.KAZE: Template.RegistrationAlignmentMethod.KazeRegistrationMethod kazeRegistrationMethod = (Template.RegistrationAlignmentMethod.KazeRegistrationMethod)registrationAlignmentMethod.GetRegistrationMethod; KazeSettingsControl kazeSettingsControl = new KazeSettingsControl(kazeRegistrationMethod.GetKazeData, registrationAlignmentMethod.GetUseStoredModelFeatures, registrationAlignmentMethod.PipelineIndex); kazeSettingsControl.OnSetDataEvent += (Template.RegistrationAlignmentMethod.KazeRegistrationMethod.KazeData kazeData, bool useStoredModelFeatures, int pipelineIndex) => { Template.RegistrationAlignmentMethod _registrationAlignmentMethod = (Template.RegistrationAlignmentMethod)mainAlignmentPipeline[pipelineIndex]; string methodName = registrationAlignmentMethod.MethodName; IInputArray inputImage = registrationAlignmentMethod.GetSourceImage; Size outputWidth = registrationAlignmentMethod.GetOutputWidth; Template.RegistrationAlignmentMethod kazeAlignmentMethod = new Template.RegistrationAlignmentMethod(pipelineIndex, methodName, new Template.RegistrationAlignmentMethod.KazeRegistrationMethod(kazeData), inputImage, outputWidth); testAlignmentPipeline[pipelineIndex] = kazeAlignmentMethod; }; kazeSettingsControl.OnResetDataEvent += (object sender, int pipelineIndex) => { Template.RegistrationAlignmentMethod _registrationAlignmentMethod = (Template.RegistrationAlignmentMethod)mainAlignmentPipeline[pipelineIndex]; Template.RegistrationAlignmentMethod.KazeRegistrationMethod _kazeRegistrationMethod = (Template.RegistrationAlignmentMethod.KazeRegistrationMethod)_registrationAlignmentMethod.GetRegistrationMethod; var kSC = (KazeSettingsControl)sender; kSC.InitializeKazePanel(_kazeRegistrationMethod.GetKazeData, _registrationAlignmentMethod.GetUseStoredModelFeatures); testAlignmentPipeline[pipelineIndex] = mainAlignmentPipeline[pipelineIndex]; }; TabPageAdv kazeTabPage = new TabPageAdv(alignmentMethod.MethodName); kazeTabPage.Controls.Add(kazeSettingsControl); kazeSettingsControl.Dock = DockStyle.Top; kazeTabPage.AutoScroll = true; result = kazeTabPage; break; case Template.RegistrationAlignmentMethod.RegistrationMethodType.AKAZE: Template.RegistrationAlignmentMethod.AKazeRegistrationMethod akazeRegistrationMethod = (Template.RegistrationAlignmentMethod.AKazeRegistrationMethod)registrationAlignmentMethod.GetRegistrationMethod; AKazeSettingsControl aKazeSettingsControl = new AKazeSettingsControl(akazeRegistrationMethod.GetAKazeData, registrationAlignmentMethod.GetUseStoredModelFeatures, registrationAlignmentMethod.PipelineIndex); aKazeSettingsControl.OnSetDataEvent += (Template.RegistrationAlignmentMethod.AKazeRegistrationMethod.AKazeData akazeData, bool useStoredModelFeatures, int pipelineIndex) => { Template.RegistrationAlignmentMethod _registrationAlignmentMethod = (Template.RegistrationAlignmentMethod)mainAlignmentPipeline[pipelineIndex]; string methodName = registrationAlignmentMethod.MethodName; IInputArray inputImage = registrationAlignmentMethod.GetSourceImage; Size outputWidth = registrationAlignmentMethod.GetOutputWidth; Template.RegistrationAlignmentMethod akazeAlignmentMethod = new Template.RegistrationAlignmentMethod(pipelineIndex, methodName, new Template.RegistrationAlignmentMethod.AKazeRegistrationMethod(akazeData), inputImage, outputWidth); testAlignmentPipeline[pipelineIndex] = akazeAlignmentMethod; }; aKazeSettingsControl.OnResetDataEvent += (object sender, int pipelineIndex) => { Template.RegistrationAlignmentMethod _registrationAlignmentMethod = (Template.RegistrationAlignmentMethod)mainAlignmentPipeline[pipelineIndex]; Template.RegistrationAlignmentMethod.AKazeRegistrationMethod _akazeRegistrationMethod = (Template.RegistrationAlignmentMethod.AKazeRegistrationMethod)_registrationAlignmentMethod.GetRegistrationMethod; var akSC = (AKazeSettingsControl)sender; akSC.InitializeAKazePanel(_akazeRegistrationMethod.GetAKazeData, _registrationAlignmentMethod.GetUseStoredModelFeatures); testAlignmentPipeline[pipelineIndex] = mainAlignmentPipeline[pipelineIndex]; }; TabPageAdv akazeTabPage = new TabPageAdv(alignmentMethod.MethodName); akazeTabPage.Controls.Add(aKazeSettingsControl); aKazeSettingsControl.Dock = DockStyle.Top; akazeTabPage.AutoScroll = true; result = akazeTabPage; break; } break; } return(result); }