private bool Refresh_parm(UnitFindModel FM_data) { FM_data.HangleStart = HangleStart; FM_data.HangleExtent = HangleExtent; FM_data.HscaleMin = HscaleMin; FM_data.HscaleMax = HscaleMax; FM_data.ContrastMin = ContrastMin; FM_data.ContrastMax = ContrastMax; FM_data.MinSize = MinSize; Hcontrast = new HTuple(); Hcontrast = Hcontrast.TupleConcat(ContrastMin); Hcontrast = Hcontrast.TupleConcat(ContrastMax); Hcontrast = Hcontrast.TupleConcat(MinSize); FM_data.HminContrast = HminContrast; FM_data.HminScore = HminScore; FM_data.HmaxOverlap = HmaxOverlap; FM_data.Hgreediness = Hgreediness; FM_data.HShapeModelID = HShapeModelID; FM_data.modelpath = modelpath; if (HShapeModelID == null) { return(false); } return(true); }
public FindModel_form(UnitFindModel FM, HObject image) { HOperatorSet.GenEmptyObj(out image_show); HOperatorSet.GenEmptyObj(out m_hModelXLD); HOperatorSet.GenEmptyObj(out Htemp_roi); HOperatorSet.GenEmptyObj(out Hdraw_roi); HOperatorSet.GenEmptyObj(out Hshow_xld1); HOperatorSet.GenEmptyObj(out Hshow_xld2); Hdraw_roi.Dispose(); Hshow_xld2.Dispose(); image_show = image; FM_data = FM; HangleStart = -20; HangleExtent = 40; HscaleMin = 0.9; HscaleMax = 1.1; ContrastMin = 11; ContrastMax = 15; MinSize = 10; Hcontrast = new HTuple(); Hcontrast = Hcontrast.TupleConcat(ContrastMin); Hcontrast = Hcontrast.TupleConcat(ContrastMax); Hcontrast = Hcontrast.TupleConcat(MinSize); HminContrast = 9; H_NumLevels = 4; H_AngleStep = "auto"; H_ScaleStep = "auto"; H_Optimization = (new HTuple("none")).TupleConcat("no_pregeneration"); H_Metric = "use_polarity"; HminScore = 0.5; HmaxOverlap = 0.5; Hgreediness = 0.8; H_NumMatches = 1; H_SubPixel = "least_squares"; InitializeComponent(); }
void get_xml_name() { for (int i = 0; i < 20; i++) { if (Vision_step[i] == null) { if (str_name[i] == "Find_model") { Vision_step[i] = new UnitFindModel(Vision_step); //str_parm if (!Vision_step[i].LoadConfig(str_parm[i])) { MessageBox.Show("模板载入错误,请选择正确的模板路径"); } } if (str_name[i] == "Find_line") { Vision_step[i] = new UnitFindLine(Vision_step); //str_parm if (!Vision_step[i].LoadConfig(str_parm[i])) { MessageBox.Show("找直线,载入参数错误"); } } if (str_name[i] == "Find_circle") { Vision_step[i] = new UnitFindCircle(Vision_step); //str_parm if (!Vision_step[i].LoadConfig(str_parm[i])) { MessageBox.Show("找圆,载入参数错误"); } } if (str_name[i] == "IntersectionLL") { Vision_step[i] = new UnitIntersectionLL(Vision_step); //str_parm if (!Vision_step[i].LoadConfig(str_parm[i])) { MessageBox.Show("找交点,载入参数错误"); } } if (str_name[i] == "Calib9PointAbs") { Vision_step[i] = new UnitCalib9PointAbs(Vision_step); //str_parm if (!Vision_step[i].LoadConfig(str_parm[i])) { MessageBox.Show("9点标定,载入参数错误"); } } if (str_name[i] == "Random") { Vision_step[i] = new UnitCalib9PointAbs(Vision_step); //str_parm if (!Vision_step[i].LoadConfig(str_parm[i])) { MessageBox.Show("随机数据,载入参数错误"); } } if (str_name[i] == "ImageFiles") { Vision_step[i] = new UnitCalib9PointAbs(Vision_step); //str_parm if (!Vision_step[i].LoadConfig(str_parm[i])) { MessageBox.Show("图像列表,载入参数错误"); } } if (str_name[i] == null) { break; } } } }
private void button2_Click(object sender, EventArgs e) { step_num = treeView1.Nodes.Count; //要添加的节点名称为空,即文本框是否为空 if (string.IsNullOrEmpty(textBox1.Text.Trim())) { MessageBox.Show("要添加的节点名称不能为空!"); return; } //根据不同的选择,添加不同的节点配置 TreeNode tmp; if (comboBox1.Text == "Find_model") { tmp = new TreeNode(textBox1.Text); treeView1.SelectedNode = tmp; treeView1.Nodes.Add(tmp); treeView1.SelectedNode.Nodes.Add("in_ModelID".Trim()); treeView1.SelectedNode.Nodes.Add("out_row".Trim()); treeView1.SelectedNode.Nodes.Add("out_col".Trim()); treeView1.SelectedNode.Nodes.Add("out_phi".Trim()); textBox1.Text = ""; Vision_step[step_num] = new UnitFindModel(Vision_step); } if (comboBox1.Text == "Find_line") { tmp = new TreeNode(textBox1.Text); treeView1.SelectedNode = tmp; treeView1.Nodes.Add(tmp); treeView1.SelectedNode.Nodes.Add("in_roi_row".Trim()); treeView1.SelectedNode.Nodes.Add("in_roi_col".Trim()); treeView1.SelectedNode.Nodes.Add("in_roi_phi".Trim()); treeView1.SelectedNode.Nodes.Add("out_row1".Trim()); treeView1.SelectedNode.Nodes.Add("out_col1".Trim()); treeView1.SelectedNode.Nodes.Add("out_row2".Trim()); treeView1.SelectedNode.Nodes.Add("out_col2".Trim()); textBox1.Text = ""; Vision_step[step_num] = new UnitFindLine(Vision_step); } if (comboBox1.Text == "Find_circle") { tmp = new TreeNode(textBox1.Text); treeView1.SelectedNode = tmp; treeView1.Nodes.Add(tmp); treeView1.SelectedNode.Nodes.Add("in_roi_row".Trim()); treeView1.SelectedNode.Nodes.Add("in_roi_col".Trim()); treeView1.SelectedNode.Nodes.Add("in_roi_ridius".Trim()); treeView1.SelectedNode.Nodes.Add("out_row".Trim()); treeView1.SelectedNode.Nodes.Add("out_col".Trim());; treeView1.SelectedNode.Nodes.Add("out_ridius".Trim()); textBox1.Text = ""; Vision_step[step_num] = new UnitFindCircle(Vision_step); } if (comboBox1.Text == "IntersectionLL") { tmp = new TreeNode(textBox1.Text); treeView1.SelectedNode = tmp; treeView1.Nodes.Add(tmp); treeView1.SelectedNode.Nodes.Add("in_line1_row1".Trim()); treeView1.SelectedNode.Nodes.Add("in_line1_col1".Trim()); treeView1.SelectedNode.Nodes.Add("in_line1_row2".Trim()); treeView1.SelectedNode.Nodes.Add("in_line1_col2".Trim()); treeView1.SelectedNode.Nodes.Add("in_line2_row1".Trim()); treeView1.SelectedNode.Nodes.Add("in_line2_col1".Trim()); treeView1.SelectedNode.Nodes.Add("in_line2_row2".Trim()); treeView1.SelectedNode.Nodes.Add("in_line2_col2".Trim()); treeView1.SelectedNode.Nodes.Add("out_row".Trim()); treeView1.SelectedNode.Nodes.Add("out_col".Trim()); textBox1.Text = ""; Vision_step[step_num] = new UnitIntersectionLL(Vision_step); } if (comboBox1.Text == "Calib9PointAbs") { tmp = new TreeNode(textBox1.Text); treeView1.SelectedNode = tmp; treeView1.Nodes.Add(tmp); //treeView1.SelectedNode.Nodes.Add("in_point_index".Trim()); treeView1.SelectedNode.Nodes.Add("in_pixel_column".Trim()); treeView1.SelectedNode.Nodes.Add("in_pixel_row".Trim()); treeView1.SelectedNode.Nodes.Add("in_world_x".Trim()); treeView1.SelectedNode.Nodes.Add("in_world_y".Trim()); treeView1.SelectedNode.Nodes.Add("out_offset_x".Trim()); treeView1.SelectedNode.Nodes.Add("out_offset_y".Trim()); treeView1.SelectedNode.Nodes.Add("out_offset_angle".Trim()); treeView1.SelectedNode.Nodes.Add("out_calib_result".Trim()); textBox1.Text = ""; Vision_step[step_num] = new UnitCalib9PointAbs(Vision_step); } if (comboBox1.Text == "Random") { tmp = new TreeNode(textBox1.Text); treeView1.SelectedNode = tmp; treeView1.Nodes.Add(tmp); treeView1.SelectedNode.Nodes.Add("out_row".Trim()); treeView1.SelectedNode.Nodes.Add("out_column".Trim()); textBox1.Text = ""; Vision_step[step_num] = new UnitRandom(Vision_step); } if (comboBox1.Text == "ImageFiles") { tmp = new TreeNode(textBox1.Text); treeView1.SelectedNode = tmp; treeView1.Nodes.Add(tmp); treeView1.SelectedNode.Nodes.Add("out_image_path".Trim()); textBox1.Text = ""; Vision_step[step_num] = new UnitImageFiles(Vision_step); } //添加根节点 //treeView1.Nodes.Add(textBox1.Text.Trim()); }
void get_tree_name() { int tree_num = 0; foreach (TreeNode node in treeView1.Nodes) { //递归遍历节点 IEnumerator ie = node.Nodes.GetEnumerator(); int tree_son_num = 0; if (Vision_step[tree_num] == null) { if (node.Text == "Find_model") { Vision_step[tree_num] = new UnitFindModel(Vision_step); //str_parm if (!Vision_step[tree_num].LoadConfig(str_parm[tree_num])) { MessageBox.Show("模板载入错误,请选择正确的模板路径"); } } if (node.Text == "Find_line") { Vision_step[tree_num] = new UnitFindLine(Vision_step); //str_parm if (!Vision_step[tree_num].LoadConfig(str_parm[tree_num])) { MessageBox.Show("找直线,载入参数错误"); } } if (node.Text == "Find_circle") { Vision_step[tree_num] = new UnitFindCircle(Vision_step); //str_parm if (!Vision_step[tree_num].LoadConfig(str_parm[tree_num])) { MessageBox.Show("找圆,载入参数错误"); } } if (node.Text == "IntersectionLL") { Vision_step[tree_num] = new UnitIntersectionLL(Vision_step); //str_parm if (!Vision_step[tree_num].LoadConfig(str_parm[tree_num])) { MessageBox.Show("找交点,载入参数错误"); } } if (node.Text == "Calib9PointAbs") { Vision_step[tree_num] = new UnitCalib9PointAbs(Vision_step); //str_parm if (!Vision_step[tree_num].LoadConfig(str_parm[tree_num])) { MessageBox.Show("9点标定,载入参数错误"); } } if (node.Text == "Random") { Vision_step[tree_num] = new UnitRandom(Vision_step); //str_parm if (!Vision_step[tree_num].LoadConfig(str_parm[tree_num])) { MessageBox.Show("随机数据,载入参数错误"); } } if (node.Text == "ImageFiles") { Vision_step[tree_num] = new UnitImageFiles(Vision_step); //str_parm if (!Vision_step[tree_num].LoadConfig(str_parm[tree_num])) { MessageBox.Show("图像列表,载入参数错误"); } } } while (ie.MoveNext()) { TreeNode ctn = (TreeNode)ie.Current; Vision_step[tree_num].str_in_parm[tree_son_num] = ctn.Text; tree_son_num++; } tree_num++; } }