/// <summary> /// 底图区域功能按钮 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Map_function_Click(object sender, EventArgs e) { ToolStripItem item = sender as ToolStripItem; switch (item.Name) { //rpc transform case "RPC_ToolStripMenuItem": RPCForm rpcForm = new RPCForm(); if (rpcForm.ShowDialog() == DialogResult.OK) { IJob rpcRectifyJob = new IJobRPCRectify(rpcForm.A, rpcForm.B, rpcForm.C, rpcForm.D, rpcForm.RPCParamaters, rpcForm.RawBinRasterFullFilenames); RegisterJob(rpcRectifyJob); rpcRectifyJob.Start(); } break; //cov matrix case "cov_toolStripButton": COVForm covForm = new COVForm(); covForm.RasterDic = _rasterDic; if (covForm.ShowDialog() == DialogResult.OK) { GRasterBand band1 = _rasterDic[covForm.Target1Key].BandCollection[0]; GRasterBand band2 = _rasterDic[covForm.Target2Key].BandCollection[0]; IJob covRasterJob = new JobCOVRaster(band1, band2); RegisterJob(covRasterJob); covRasterJob.Start(); } break; //task case "task_toolStripButton": TaskMonitor taskForm = new TaskMonitor(); taskForm.Jobs = _jobs; taskForm.ShowDialog(); break; //calucte kappa case "kappa_toolStripButton": KappaForm kappaForm = new KappaForm(); kappaForm.RasterDic = _rasterDic; kappaForm.ShowDialog(); break; //添加图像 case "open_toolstripmenuitem": case "open_contextMenuStrip": ReadImage(); break; //超像素分割 case "SLIC_toolStripButton": case "SLIC_toolStripMenu": Bitmap bmp = map_pictureBox.Image as Bitmap; if (bmp != null) { ThreadStart slic_ts = delegate { RunSLIC(bmp); }; Thread slic_t = new Thread(slic_ts); slic_t.IsBackground = true; slic_t.Start(); } else { UpdateStatusLabel("未选中待计算图像,地图区域无图片", STATUE_ENUM.ERROR); } break; //super pixel case "SLIC_Center_toolStripButton": case "SLIC_Center_toolStripMenu": OpenFileDialog opg = new OpenFileDialog { Filter = "JSON文件|*.json" }; if (opg.ShowDialog() == DialogResult.OK) { //1.读取center中心 using (StreamReader sr = new StreamReader(opg.FileName)) { List <byte> colors = new List <byte>(); Center[] centers = SuperPixelSegment.ReadCenter(sr.ReadToEnd()); //2.设置使用图层 SLICForm centerApplyForm = new SLICForm(); if (centerApplyForm.ShowDialog() == DialogResult.OK) { ThreadStart s = delegate { RunCenter(centerApplyForm.FileNameCollection, centers); }; Thread t = new Thread(s); t.IsBackground = true; t.Start(); } } } break; //dqn classification case "DQN_toolStripButton": DQNForm dqnForm = new DQNForm(); dqnForm.RasterDic = _rasterDic; if (dqnForm.ShowDialog() == DialogResult.OK) { //"Image Classification", if (dqnForm.TaskName == "Image Classification") { IJob dqnClassifyJob = new JobDQNClassify(_rasterDic[dqnForm.SelectedFeatureRasterLayer], _rasterDic[dqnForm.SelectedLabelRasterLayer], dqnForm.Epochs); RegisterJob(dqnClassifyJob); dqnClassifyJob.Start(); } //"Road Extraction" else if (dqnForm.TaskName == "Road Extraction") { } } break; //cnn classification case "CNN_toolStripButton": CNNForm cnnForm = new CNNForm(); cnnForm.RasterDic = _rasterDic; if (cnnForm.ShowDialog() == DialogResult.OK) { IJob cnnClassifyJob = new JobCNNClassify(_rasterDic[cnnForm.SelectedFeatureRasterLayer], _rasterDic[cnnForm.SelectedLabelRasterLayer], cnnForm.Epochs, cnnForm.Model, cnnForm.ImageWidth, cnnForm.ImageHeight, 1); RegisterJob(cnnClassifyJob); cnnClassifyJob.Start(); } break; //random forest classification case "rf_toolStripButton": RandomForestForm rfForm = new RandomForestForm(); rfForm.RasterDic = _rasterDic; if (rfForm.ShowDialog() == DialogResult.OK) { IJob rfJob = new JobRFClassify(rfForm.TreeCount, rfForm.FullFilename, _rasterDic[rfForm.FeatureKey]); RegisterJob(rfJob); rfJob.Start(); } break; //drawing comparsion multi-reslut curve case "Compare_Plot_toolStripButton": ComparedPlotForm cp_form = new ComparedPlotForm(); cp_form.ShowDialog(); break; default: break; } }