Exemplo n.º 1
0
        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;
        }
Exemplo n.º 2
0
        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;
        }
Exemplo n.º 3
0
        public RegistrationAlignmentMethodForm(Template.RegistrationAlignmentMethod registrationAlignmentMethod, Mat templateImage)
        {
            InitializeComponent();

            Awake();

            this.templateImage = templateImage;
            pipelineIndex      = registrationAlignmentMethod.PipelineIndex;
            methodName         = registrationAlignmentMethod.MethodName;

            Initialize(registrationAlignmentMethod);
        }
Exemplo n.º 4
0
 private void Initialize(Template.RegistrationAlignmentMethod registrationAlignmentMethod)
 {
     SetupForConfigured(registrationAlignmentMethod);
 }
Exemplo n.º 5
0
        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);
        }