Example #1
0
        public bool Read(string Path)
        {
            bool IsOk = true;
            // BasePath = System.IO.Directory.GetCurrentDirectory();
            string path = Path + ConfigName + @"\";

            this.localSetting = XML <LocalSettingPara> .Read(path + "LocalSetting.xml");

            this.Template = XML <St_TemplateParam> .Read(path + "Template.xml");

            this.Lines = XML <St_LinesParam> .Read(path + "Lines.xml");

            this.Circles = XML <St_CirclesParam> .Read(path + "Circles.xml");

            this.Blobs = XML <St_BlobLocalParam> .Read(path + "Blobs.xml");

            this.LineCirRectInspParam = XML <St_InspectImageSetting> .Read(path + "LineCirRectInspParam.xml");

            if (localSetting == null)
            {
                return(true);
            }
            if (localSetting.localModel.ToString().Contains("Temp"))
            {
                Template.Load(path);
            }
            return(IsOk);
        }
Example #2
0
        private void btnCreateTemplate_Click(object sender, EventArgs e)
        {
            if (btnCreateTemplate.Text == "新建")
            {
                btnCreateTemplate.Enabled = true;

                panelOperator.Enabled  = true;
                groupBox1.Enabled      = true;
                this.Enabled           = true;
                btnCreateTemplate.Text = "保存";
                view1.roiController.reset();
                view1.roiController.NotifyRCObserver += UpdateViewData;
                view1.roiController.setROISign(ViewROI.ROIController.MODE_ROI_POS);
                if (CurrentImage == null)
                {
                    Logger.PopError("请先采集图片!", true);
                    return;
                }
                view1.SetDraw("red", "margin");
                //1.0界面去使能
                this.BeginInvoke(new Action(() => { ActionIsDrawingRoi(true); }));
                view1.Refresh();
                view1.AddImage(CurrentImage);
                if (RoiStr.Equals("Rect1"))
                {
                    view1.SetString(12, 12, "red", "绘制矩形区域作为模板区域");
                    Thread.Sleep(10);
                    view1.roiController.setROIShape(new ViewROI.ROIRectangle1(200));
                }
                #region
                //else if (RoiStr.Equals("Rect2"))
                //{
                //    HOperatorSet.ClearWindow(ShowWindow);
                //    MyVisionBase.hDispObj(ShowWindow, CurrentImage);
                //    MyVisionBase.disp_message(ShowWindow, "绘制矩形区域作为模板区域", "window", 12, 12, "red", "false");
                //    HTuple CenterRow, CenterCol, Rect2Phi, RectL1, RectL2;
                //    HOperatorSet.DrawRectangle2(ShowWindow, out CenterRow, out CenterCol, out Rect2Phi, out RectL1, out RectL2);
                //    ModelRoi = new HRegion();
                //    ModelRoi.GenRectangle2(CenterRow, CenterCol, Rect2Phi, RectL1, RectL2);
                //}
                //else if (RoiStr.Equals("Circle"))
                //{
                //    MyVisionBase.disp_message(ShowWindow, "绘制圆形区域作为模板区域", "window", 12, 12, "red", "false");
                //    HTuple CircleRow, CircleCol, CircleR;
                //    HOperatorSet.DrawCircle(ShowWindow, out CircleRow, out CircleCol, out CircleR);
                //    ModelRoi = new HRegion();
                //    ModelRoi.GenCircle(CircleRow, CircleCol, CircleR);
                //}
                //else if (RoiStr.Equals("CircleMod"))
                //{
                //    HTuple CircleRowIn, CircleColIn, CircleRIn, CircleRow, CircleCol, CircleR;
                //    MyVisionBase.disp_message(ShowWindow, "绘制外圆区域作为圆环模板区域的外圆", "window", 12, 12, "red", "false");
                //    HOperatorSet.DrawCircle(ShowWindow, out CircleRowIn, out CircleColIn, out CircleRIn);
                //    HOperatorSet.ClearWindow(ShowWindow);
                //    MyVisionBase.hDispObj(ShowWindow, CurrentImage);
                //    MyVisionBase.disp_message(ShowWindow, "绘制内圆区域作为圆环模板区域的内圆", "window", 12, 12, "red", "false");
                //    HOperatorSet.DrawCircleMod(ShowWindow, CircleRowIn, CircleColIn, CircleRIn, out CircleRow, out CircleCol, out CircleR);
                //    HRegion InnerCirRegion = new HRegion();
                //    ModelRoi = new HRegion();
                //    InnerCirRegion.GenCircle(CircleRowIn, CircleColIn, CircleRIn);
                //    ModelRoi.GenCircle(CircleRow, CircleCol, CircleR);
                //    ModelRoi.Difference(InnerCirRegion);
                //}
                //else if (RoiStr.Equals("Rect2+Rect2"))
                //{
                //    HTuple CenterRow, CenterCol, Rect2Phi, RectL1, RectL2;
                //    HRegion Rect2ROI = new HRegion();
                //    MyVisionBase.disp_message(ShowWindow, "绘制矩形1作为矩形联合区域的第一个矩形区域", "window", 12, 12, "red", "false");
                //    HOperatorSet.DrawRectangle2(ShowWindow, out CenterRow, out CenterCol, out Rect2Phi, out RectL1, out RectL2);
                //    ModelRoi = new HRegion();
                //    ModelRoi.GenRectangle2(CenterRow, CenterCol, Rect2Phi, RectL1, RectL2);
                //    HOperatorSet.ClearWindow(ShowWindow);
                //    MyVisionBase.hDispObj(ShowWindow, CurrentImage);
                //    MyVisionBase.disp_message(ShowWindow, "绘制矩形2作为矩形联合区域的第二个矩形区域", "window", 12, 12, "red", "false");
                //    HOperatorSet.DrawRectangle2(ShowWindow, out CenterRow, out CenterCol, out Rect2Phi, out RectL1, out RectL2);
                //    Rect2ROI.GenRectangle2(CenterRow, CenterCol, Rect2Phi, RectL1, RectL2);
                //    ModelRoi = ModelRoi.Union2(Rect2ROI);
                //}
                //else
                //{
                //    HOperatorSet.DrawRectangle1(ShowWindow, out row1, out column1, out row2, out column2);
                //    ModelRoi = new HRegion(row1, column1, row2, column2);
                //}
                #endregion
            }
            else if (btnCreateTemplate.Text == "保存")
            {
                btnCreateTemplate.Text = "新建";
                view1.roiController.NotifyRCObserver -= UpdateViewData;
                view1.roiController.reset();
                this.BeginInvoke(new Action(() => { ActionIsDrawingRoi(false); }));
                string files = TemplateParam.TemplatePath;
                if (false)
                {
                    SaveFileDialog saveFileDialog1 = new SaveFileDialog();
                    if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                    {
                        files = saveFileDialog1.FileName;
                        TemplateParam.Save(files);
                    }
                }
                else
                {
                    TemplateParam.Save(files);
                    TemplateParam.Load(files);
                }
            }
        }