Ejemplo n.º 1
0
        /// <summary>
        /// 分类方法选择事件,控制非监督分类参数配置面板显示的方法参数
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void unsuperviseMethod_radioGroup_SelectedIndexChanged(object sender, EventArgs e)
        {
            int index = this.unsuperviseMethod_radioGroup.SelectedIndex;

            switch (index)
            {
            case 0:
                m_selectedMethod = ClassifyAlgBase.ClassifyMethod.IsoData;
                break;

            case 1:
                m_selectedMethod = ClassifyAlgBase.ClassifyMethod.KMeans;
                break;
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 分类方法选择事件,控制监督分类参数配置面板显示的方法参数
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void superviseMethod_radioGroup_SelectedIndexChanged(object sender, EventArgs e)
        {
            int index = this.superviseMethod_radioGroup.SelectedIndex;

            switch (index)
            {
            case 0:
                m_selectedMethod = ClassifyAlgBase.ClassifyMethod.Parallelepiped;
                break;

            case 1:
                m_selectedMethod = ClassifyAlgBase.ClassifyMethod.MinimumDistance;
                break;

            case 2:
                m_selectedMethod = ClassifyAlgBase.ClassifyMethod.MahalanobisDistance;
                break;

            case 3:
                m_selectedMethod = ClassifyAlgBase.ClassifyMethod.MaximumLikelihood;
                break;

            case 4:
                m_selectedMethod = ClassifyAlgBase.ClassifyMethod.MaximumLikelihood;
                break;

            case 5:
                m_selectedMethod = ClassifyAlgBase.ClassifyMethod.SpectralAngleMapper;
                break;

            case 6:
                m_selectedMethod = ClassifyAlgBase.ClassifyMethod.SpectralInformationDivergence;
                break;

            case 7:
                m_selectedMethod = ClassifyAlgBase.ClassifyMethod.BinaryEncoding;
                break;

            case 8:
                m_selectedMethod = ClassifyAlgBase.ClassifyMethod.NeuralNet;
                break;

            case 9:
                m_selectedMethod = ClassifyAlgBase.ClassifyMethod.SupportVectrorMachine;
                break;
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 动态加载所选择的分类方法参数设置窗口
        /// </summary>
        /// <param name="classifyMethod"></param>
        private void initClassParamSettingPage(ClassifyAlgBase.ClassifyMethod classifyMethod)
        {
            disposeAllClassifyForm();
            switch (classifyMethod)
            {
            case ClassifyAlgBase.ClassifyMethod.Parallelepiped:
                parallepipedForm = new ParallelepipedClassify();
                m_formList.Add(parallepipedForm);
                buildFormIntoParent(parallepipedForm, this.supervise_splitContainerControl.Panel2);
                break;

            case ClassifyAlgBase.ClassifyMethod.MinimumDistance:
                miniDisForm = new MinimumDistanceClassify();
                m_formList.Add(miniDisForm);
                buildFormIntoParent(miniDisForm, this.supervise_splitContainerControl.Panel2);
                break;

            case ClassifyAlgBase.ClassifyMethod.MahalanobisDistance:
                mahForm = new MahlanobisDistanceClassify();
                m_formList.Add(mahForm);
                buildFormIntoParent(mahForm, this.supervise_splitContainerControl.Panel2);
                break;

            case ClassifyAlgBase.ClassifyMethod.MaximumLikelihood:
                maxLikeForm = new MaximumLikelihoodClassify();
                m_formList.Add(maxLikeForm);
                buildFormIntoParent(maxLikeForm, this.supervise_splitContainerControl.Panel2);
                break;

            case ClassifyAlgBase.ClassifyMethod.SpectralAngleMapper:
                samForm = new SamClassify();
                m_formList.Add(samForm);
                buildFormIntoParent(samForm, this.supervise_splitContainerControl.Panel2);
                break;

            case ClassifyAlgBase.ClassifyMethod.SpectralInformationDivergence:
                sidForm = new SidClassify();
                m_formList.Add(sidForm);
                buildFormIntoParent(sidForm, this.supervise_splitContainerControl.Panel2);
                break;

            case ClassifyAlgBase.ClassifyMethod.BinaryEncoding:
                binEncodForm = new BinaryEncodingClassify();
                m_formList.Add(binEncodForm);
                buildFormIntoParent(binEncodForm, this.supervise_splitContainerControl.Panel2);
                break;

            case ClassifyAlgBase.ClassifyMethod.NeuralNet:
                annForm = new ANNClassify();
                m_formList.Add(annForm);
                buildFormIntoParent(annForm, this.supervise_splitContainerControl.Panel2);
                break;

            case ClassifyAlgBase.ClassifyMethod.SupportVectrorMachine:
                svmForm = new SvmClassify();
                m_formList.Add(svmForm);
                buildFormIntoParent(svmForm, this.supervise_splitContainerControl.Panel2);
                break;

            case ClassifyAlgBase.ClassifyMethod.IsoData:
                isodataForm = new IsoDataClassify();
                m_formList.Add(isodataForm);
                buildFormIntoParent(isodataForm, this.unsupervise_xtraTabPage);
                break;

            case ClassifyAlgBase.ClassifyMethod.KMeans:
                kmeansForm = new KmeansClassify();
                m_formList.Add(kmeansForm);
                buildFormIntoParent(kmeansForm, this.unsupervise_xtraTabPage);
                break;

            case ClassifyAlgBase.ClassifyMethod.None:

            default:
                break;
            }
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 用于控制面板的翻页
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void tabPageControl_windowsUIButtonPanel_ButtonClick(object sender, DevExpress.XtraBars.Docking2010.ButtonEventArgs e)
        {
            DevExpress.XtraEditors.ButtonPanel.IBaseButton preBtn  = this.tabPageControl_windowsUIButtonPanel.Buttons[0];
            DevExpress.XtraEditors.ButtonPanel.IBaseButton nextBtn = this.tabPageControl_windowsUIButtonPanel.Buttons[1];

            if (e.Button == preBtn &&
                this.classfication_backstageViewControl.SelectedTabIndex != 0)
            {
                this.classfication_backstageViewControl.SelectedTabIndex -= 1;
            }
            else if (e.Button == nextBtn)
            {
                int currentTabIndex = this.classfication_backstageViewControl.SelectedTabIndex;

                switch (currentTabIndex)
                {
                case 0:     // Select Method面板
                    if (supervise_checkEdit.Checked == false && unsupervise_checkEdit.Checked == false)
                    {
                        MessageBox.Show("Please select a method.");
                        return;
                    }
                    else
                    {
                        if (supervise_checkEdit.Checked == true)
                        {
                            this.m_selectedMethod = (ClassifyAlgBase.ClassifyMethod)(superviseMethod_radioGroup.SelectedIndex + 1);
                        }
                        else if (unsupervise_checkEdit.Checked == true)
                        {
                            this.m_selectedMethod = (ClassifyAlgBase.ClassifyMethod)(unsuperviseMethod_radioGroup.SelectedIndex + 1 + 9);
                        }

                        if (preBtn.Properties.Enabled == false)
                        {
                            preBtn.Properties.Enabled = true;
                        }

                        initClassParamSettingPage(m_selectedMethod);
                        turnNextTabPage();
                    }
                    break;

                case 1:     // Set Parameters面板
                    turnNextTabPage();
                    break;

                case 2:     // Export Data面板
                    string inputPath  = "";
                    string outputPath = "";
                    if (singleMode_checkEdit.Checked == true)
                    {
                        if (inDataFile_btn.Text == "")
                        {
                            MessageBox.Show("Please enter the input file."); return;
                        }
                        if (outDataFile_btn.Text == "")
                        {
                            MessageBox.Show("Please enter the output file."); return;
                        }

                        inputPath  = this.inDataFile_btn.Text;
                        outputPath = this.outDataFile_btn.Text;
                    }
                    else if (batchMode_checkEdit.Checked == true)
                    {
                        if (inDataFolder_btn.Text == "")
                        {
                            MessageBox.Show("Please enter the input file folder."); return;
                        }
                        if (outDataFolder_btn.Text == "")
                        {
                            MessageBox.Show("Please enter the output file folder."); return;
                        }

                        inputPath  = inDataFolder_btn.Text;
                        outputPath = outDataFolder_btn.Text;
                    }
                    // 设置Run面板中的初始化参数
                    this.class_method_textEdit.Text     = ClassifyAlgBase.getMethodString(this.m_selectedMethod);
                    this.class_inputfile_textEdit.Text  = inputPath;
                    this.class_outputfile_textEdit.Text = outputPath;

                    turnNextTabPage();

                    break;

                case 3:     // Run面板
                    if (m_processIsDone == false)
                    {
                        return;
                    }

                    turnNextTabPage();
                    break;

                case 4:     // Finish面板

                    break;

                default:
                    break;
                }
            }
        }