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