Ejemplo n.º 1
0
        public override bool GenObj(HObject image, VisionControl visionControl)
        {
            try
            {
                if (Mode2dCode != null)
                {
                    HOperatorSet.ClearDataCode2dModel(Mode2dCode);
                }
                HTuple hv_DataCodeHandleLow = null;
                HOperatorSet.CreateDataCode2dModel(vision2dCodeParam.Code2dSystem, "default_parameters", "standard_recognition", out hv_DataCodeHandleLow);

                Mode2dCode = hv_DataCodeHandleLow;

                string Mode2dcodePath = VisionMgr.GetInstance().CurrentVisionProcessDir + "\\" + m_strStepName + "\\" + m_strStepName + "_data_code_model.dcm";
                HOperatorSet.WriteDataCode2dModel(Mode2dCode, Mode2dcodePath);

                string imgpath = VisionMgr.GetInstance().CurrentVisionProcessDir + "\\" + m_strStepName + "\\" + m_strStepName + ".bmp";
                if (image != null && image.IsInitialized())
                {
                    HOperatorSet.WriteImage(image, "bmp", 0, imgpath);
                }
            }
            catch (HalconException e)
            {
                MessageBox.Show(m_strStepName + "创建2CodeModle失败:" + e.Message, "Err", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(false);
            }

            return(true);
        }
 public override void FlushToDlg(VisionSetpBase visionSetp, VisionControl visionControl, Control Farther = null)
 {
     if (visionSetp == null)
     {
         return;
     }
     //if (Farther != null)
     //    this.Location = new Point(Farther.Location.X, Farther.Location.Y);
     m_visionControl = visionControl;
     m_vision2dCode  = visionSetp as Vision2dCode;
     if (m_vision2dCode == null)
     {
         return;
     }
     m_vision2dCode = (Vision2dCode)visionSetp;
     if (m_vision2dCode == null)
     {
         MessageBox.Show("视觉类型为空 刷新失败,请选择", "Err", MessageBoxButtons.OK, MessageBoxIcon.Error);
         return;
     }
     if (m_vision2dCode != null)
     {
         comboBox_CodeSystem.Text        = m_vision2dCode.vision2dCodeParam.Code2dSystem;
         comboBox_ContrastTolerance.Text = m_vision2dCode.vision2dCodeParam.ContrastTolerance;
     }
 }
Ejemplo n.º 3
0
        public override bool GenObj(HObject image, VisionControl visionControl)
        {
            try
            {
                HTuple hv_BarCodeModel = null;
                if (Mode1dCode != null)
                {
                    HOperatorSet.ClearBarCodeModel(Mode1dCode);
                }

                HOperatorSet.CreateBarCodeModel(new HTuple(), new HTuple(), out hv_BarCodeModel);
                Mode1dCode = hv_BarCodeModel;

                string Mode1dcodePath = VisionMgr.GetInstance().CurrentVisionProcessDir + "\\" + m_strStepName + "\\" + m_strStepName + "_bar_code_model.bcm";
                HOperatorSet.WriteBarCodeModel(Mode1dCode, Mode1dcodePath);

                string imgpath = VisionMgr.GetInstance().CurrentVisionProcessDir + "\\" + m_strStepName + "\\" + m_strStepName + ".bmp";
                if (image != null && image.IsInitialized())
                {
                    HOperatorSet.WriteImage(image, "bmp", 0, imgpath);
                }
            }
            catch (HalconException e)
            {
                MessageBox.Show(m_strStepName + "创建1CodeModle失败:" + e.Message, "Err", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(false);
            }

            return(true);
        }
Ejemplo n.º 4
0
 /// <summary>
 /// Hide all pages and show the default page (player tab)
 /// </summary>
 public void ShowDefaultPages()
 {
     WaitControl.Invoke(new Action(() => WaitControl.Visible           = false));
     PlayerControl.Invoke(new Action(() => PlayerControl.Visible       = false));
     GraphicsControl.Invoke(new Action(() => GraphicsControl.Visible   = false));
     ViewmodelControl.Invoke(new Action(() => ViewmodelControl.Visible = false));
     VisionControl.Invoke(new Action(() => VisionControl.Visible       = false));
     b0.Invoke(new Action(() => b0_Click(null, null)));
 }
Ejemplo n.º 5
0
 public void FlushToDlg(DispTraceBaseElement dispTraceBaseElement, VisionControl visionControl, bool bIsModfiy)
 {
     if (visionControl != null)
     {
         vc = visionControl;
     }
     PonitElement = dispTraceBaseElement as DispTraceBaseElementPoint;
     comPartSet1.UpdataParam(PonitElement, PonitElement.TraceMoveParam);
     pointValSet.UpDataParam(PonitElement.bIsAllPointMachine, PonitElement.PointCoordinate, visionControl, bIsModfiy);
     bModify = bIsModfiy;
 }
Ejemplo n.º 6
0
 public bool ProcessImage(string StepName, HObject img, VisionControl visionControl)
 {
     if (dicVision.ContainsKey(StepName))
     {
         return(dicVision[StepName].Process_image(img, visionControl));
     }
     else
     {
         return(false);
     }
 }
Ejemplo n.º 7
0
 public void Flush(VisionControl visionControl, List <shapeparam> listshapelist)
 {
     shapeparams = listshapelist;
     //if (shapeparams == null || shapeparams.Count == 0)
     //    return;
     vc = visionControl;
     dataGridView_ItemAllElement.Rows.Clear();
     foreach (var temp in listshapelist)
     {
         dataGridView_ItemAllElement.Rows.Add("False", temp.name, temp.shapeType.ToString());
     }
 }
Ejemplo n.º 8
0
        public override bool GenObj(HObject image, VisionControl visionControl)
        {
            try
            {
            }
            catch (HalconException e)
            {
                MessageBox.Show(m_strStepName + "创建2CodeModle失败:" + e.Message, "Err", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(false);
            }

            return(true);
        }
Ejemplo n.º 9
0
 public void FlushToDlg(VisionControl visionControl, Control Father = null)
 {
     if (Father != null && Father.Controls != null && !Father.Controls.Contains(visionCtr))
     {
         Father.Controls.Add(visionCtr);
     }
     if (visionCtr != null)
     {
         visionCtr?.FlushToDlg(this, visionControl, Father);
         visionCtr.Location = new System.Drawing.Point(1, -1);
         visionCtr?.Show();
     }
 }
Ejemplo n.º 10
0
        public override bool bDraw(VisionControl visionControl)
        {
            HTuple Row1 = 0; HTuple column1 = 0; HTuple Row2 = 0; HTuple column2 = 0;

            visionControl?.DrawPoint(out Row1, out column1);
            if (visionControl != null && Row1 != null && Row1.Length > 0)
            {
                X = column1[0].D;
                Y = Row1[0].D;

                return(true);
            }
            return(false);
        }
Ejemplo n.º 11
0
        public override bool Process_image(HObject ho_Image, VisionControl visionControl)
        {
            try
            {
            }
            catch (HalconException e)
            {
                return(false);
            }
            finally
            {
            }

            return(true);
        }
Ejemplo n.º 12
0
 /// <summary>
 /// Hide all pages.
 /// </summary>
 /// <param name="isWaitPage">Show the wait pages</param>
 public void HidePages(bool isWaitPage)
 {
     if (isWaitPage)
     {
         WaitControl.Invoke(new Action(() => WaitControl.Visible = true));
     }
     else
     {
         WaitControl.Invoke(new Action(() => WaitControl.Visible = false));
     }
     PlayerControl.Invoke(new Action(() => PlayerControl.Visible       = false));
     GraphicsControl.Invoke(new Action(() => GraphicsControl.Visible   = false));
     ViewmodelControl.Invoke(new Action(() => ViewmodelControl.Visible = false));
     VisionControl.Invoke(new Action(() => VisionControl.Visible       = false));
 }
Ejemplo n.º 13
0
        public override bool bDraw(VisionControl visionControl)
        {
            HTuple Row = 0; HTuple column = 0; HTuple Radiu = 0;

            visionControl?.DrawCircle(out Row, out column, out Radiu);

            if (visionControl != null && Row != null && Row.Length > 0)
            {
                CircleCenterX = column[0].D;
                CircleCenterY = Row[0].D;
                CircleRadius  = Radiu[0].D;
                return(true);
            }

            return(false);
        }
Ejemplo n.º 14
0
        public override bool bDraw(VisionControl visionControl)
        {
            HTuple Row1 = 0; HTuple column1 = 0; HTuple Row2 = 0; HTuple column2 = 0;

            visionControl?.DrawRectangle(out Row1, out column1, out Row2, out column2);
            if (visionControl != null && Row1 != null && Row1.Length > 0)
            {
                X1 = column1[0].D;
                Y1 = Row1[0].D;
                X2 = column2[0].D;
                Y2 = Row2[0].D;

                return(true);
            }
            return(false);
        }
Ejemplo n.º 15
0
        public override bool bDraw(VisionControl visionControl)
        {
            HTuple Row = 0; HTuple column = 0; HTuple len1, len2, phi = 0;

            len1 = 100; len2 = 20;
            visionControl?.DrawRectangle2(out Row, out column, out phi, out len1, out len2);
            if (visionControl != null && Row != null && Row.Length > 0)
            {
                CenterX = column[0].D;
                CenterY = Row[0].D;
                Phi     = phi[0].D;
                Len1    = len1[0].D;
                Len2    = len2[0].D;
                return(true);
            }
            return(false);
        }
Ejemplo n.º 16
0
        //VisionControl vc;

        public void FlushToDlg(DispTraceBaseElement DispTraceElement, VisionControl visionControl, bool bIsModfiy)
        {
            if (visionControl != null)
            {
                vc = visionControl;
            }
            elementLine = DispTraceElement as DispTraceBaseElementLine;
            if (elementLine == null)
            {
                MessageBox.Show("点胶路径元素的类型不对", "Err", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return;
            }
            comPartSet1.UpdataParam(elementLine, elementLine.TraceMoveParam);
            pointValSetStartPoint.UpDataParam(elementLine.bIsAllPointMachine, elementLine.cStartPoint, visionControl, bIsModfiy);
            pointValSetEndPoint.UpDataParam(elementLine.bIsAllPointMachine, elementLine.cEndPoint, visionControl, bIsModfiy);
            bModify = bIsModfiy;
        }
Ejemplo n.º 17
0
    // Use this for initialization
    void Start()
    {
        vision = GetComponent<VisionControl>();
        nav = GetComponent<AICharacterControl>();
        ani = GetComponent<Animator>();

        waypointIndex = 0;

        isLooking = false;

        currentWaypoint = Waypoints[waypointIndex];

        state = "Patrol";

        nav.target = currentWaypoint;

        pm = GameObject.FindObjectOfType<PlayerManager>().GetComponent<PlayerManager>();
    }
        public override void FlushToDlg(VisionSetpBase visionSetp, VisionControl visionControl, Control Farther = null)
        {
            if (visionSetp == null)
            {
                return;
            }
            m_visionControl = visionControl;
            //if(Farther!=null)
            //   this.Location = new Point(Farther.Location.X, Farther.Location.Y);
            m_vision1dCode = visionSetp as Vision1dCode;
            if (m_vision1dCode == null)
            {
                return;
            }
            m_vision1dCode = (Vision1dCode)visionSetp;

            //  comboBox_CodeSystem.Text = m_vision1dCode.vision2dCodeParam.Code2dSystem;
            //  comboBox_ContrastTolerance.Text = m_vision1dCode.vision2dCodeParam.ContrastTolerance;
        }
Ejemplo n.º 19
0
        public override void FlushToDlg(VisionSetpBase visionSetp, VisionControl visionControl, Control Farther = null)
        {
            if (visionSetp == null)
            {
                return;
            }
            //if (Farther != null)
            //    this.Location = new Point(Farther.Location.X, Farther.Location.Y);
            m_visionShapMatch = visionSetp as VisionShapMatch;
            if (m_visionShapMatch == null)
            {
                return;
            }
            m_visionShapMatch = (VisionShapMatch)visionSetp;
            m_visionControl   = visionControl;
            if (Farther != null)
            {
                this.Location = new Point(Farther.Location.X, Farther.Location.Y);
            }

            textBox_StartAngle.Text  = m_visionShapMatch.visionShapParam.AngleStart.ToString();
            textBox_AngleExtent.Text = m_visionShapMatch.visionShapParam.AngleExtent.ToString();
            textBox_ScaleColMin.Text = m_visionShapMatch.visionShapParam.MinColScale.ToString();
            textBox_ScaleColMax.Text = m_visionShapMatch.visionShapParam.MaxColScale.ToString();

            textBox_MatchNum.Text             = m_visionShapMatch.visionShapParam.nNum.ToString();
            textBox_MatchScore.Text           = m_visionShapMatch.visionShapParam.dSorce.ToString();
            textBox_OverLapArea.Text          = m_visionShapMatch.visionShapParam.MaxOverlap.ToString();
            textBox_PyramidHierarchy.Text     = m_visionShapMatch.visionShapParam.CratePyramid.ToString();
            textBox_PyramidHierarchyHigh.Text = m_visionShapMatch.visionShapParam.MatchPyamidHigh.ToString();
            textBox_PyramidHierarchyLow.Text  = m_visionShapMatch.visionShapParam.MatchPyamidLow.ToString();

            textBox_ContrastHigh.Text       = m_visionShapMatch.visionShapParam.ContrastHigh.ToString();
            textBox_ContrastLow.Text        = m_visionShapMatch.visionShapParam.ContrastLow.ToString();
            textBox_MinSize.Text            = m_visionShapMatch.visionShapParam.MinSize.ToString();
            roundButton_SetOutPoint.Enabled = m_visionShapMatch.visionShapParam.bSetOutPoint;
            roundButton_SetOutPoint.Enabled = m_visionShapMatch.visionShapParam.bSetOutPoint;
            comboSelPolarity.Text           = m_visionShapMatch.visionShapParam.strPolaritySel;
            comBoSelMatch.Text = m_visionShapMatch.visionShapParam.ModeType.ToString();
            regionOut1.Flush(visionControl, m_visionShapMatch.shapeslist);
            this.Show();
        }
Ejemplo n.º 20
0
 public void FlushToDlg(DispTraceBaseElement TraceElement, VisionControl visionControl, bool bIsModfiy)
 {
     if (visionControl != null)
     {
         vc = visionControl;
     }
     cDispTraceElementArc = TraceElement as DispTraceBaseElementArc;
     if (cDispTraceElementArc == null)
     {
         MessageBox.Show("点胶路径元素的类型不对", "Err", MessageBoxButtons.OK, MessageBoxIcon.Error);
         return;
     }
     comPartSet1.UpdataParam(cDispTraceElementArc, cDispTraceElementArc.TraceMoveParam);
     //点位设置  圆心 起点 终点
     pointValSetArcCenterPoint.UpDataParam(cDispTraceElementArc.bIsAllPointMachine, cDispTraceElementArc.cCenterPoint, visionControl, bIsModfiy);
     pointValSetArcStartPoint.UpDataParam(cDispTraceElementArc.bIsAllPointMachine, cDispTraceElementArc.cStartPoint, visionControl, bIsModfiy);
     pointValSetArcEndPoint.UpDataParam(cDispTraceElementArc.bIsAllPointMachine, cDispTraceElementArc.cEndPoint, visionControl, bIsModfiy);
     this.bIsArc    = cDispTraceElementArc.bIsArc;
     this.bIsArcDir = cDispTraceElementArc.bIsArcDir;
     bModify        = bIsModfiy;
 }
Ejemplo n.º 21
0
        private void MainForm_Load(object sender, EventArgs e)
        {
            VSGlobalControl.InitParm();
            for (int i = 0; i < Enum.GetNames(typeof(BufferIndex)).Length; i++)
            {
                VisionList[i] = new VisionControl((BufferIndex)i);
                VisionList[i].ResPublisher.subscribeMeToResponseEvents(this);
            }
            VisionCalibration.Owner = VisionList[(int)BufferIndex.Test];

            SVS_CameraSys.getCameras();
            if (SVS_CameraSys.CameraCount > 0)
            {
                SVS_CameraSys.CameraList[0].subscribeMeToVisionEvents(this);
                SVS_CameraSys.CameraList[0].subscribeMeToVisionEvents(VisionList[0]);
                SVS_CameraSys.CameraList[0].subscribeMeToVisionEvents(VisionList[1]);
                SVS_CameraSys.CameraList[0].subscribeMeToVisionEvents(VisionList[2]);
                SVS_CameraSys.CameraList[0].subscribeMeToVisionEvents(VisionList[3]);
                SVS_CameraSys.CameraList[0].SetSVSCameraMode(1);
                VSGlobalControl.m_CamParam.CameraSize.Width  = SVS_CameraSys.CameraList[0].camWidth;
                VSGlobalControl.m_CamParam.CameraSize.Height = SVS_CameraSys.CameraList[0].camHeight;
            }

            //cameraset.cameraSetting1.SetCamera();
            cameraSetting1.SetCamera();
            VisionList[(int)BufferIndex.RightCell].VisionInit(CamDisplayRightCell, ShowPosition);
            VisionList[(int)BufferIndex.MiddleCell].VisionInit(CamDisplayMiddleCell, ShowPosition);
            VisionList[(int)BufferIndex.LeftCell].VisionInit(CamDisplayLeftCell, ShowPosition);
            VisionList[(int)BufferIndex.Test].VisionInit(CamDisplayTest, ShowPosition);

            CurrentProductName = VSGlobalControl.SysParam.CurrentProduct;
            Connect();

            VisionSetting1.VisionList = VisionList;
            VisionSetting1.CameraDispList[(int)BufferIndex.RightCell]  = CamDisplayRightCell;
            VisionSetting1.CameraDispList[(int)BufferIndex.MiddleCell] = CamDisplayMiddleCell;
            VisionSetting1.CameraDispList[(int)BufferIndex.LeftCell]   = CamDisplayLeftCell;
            VisionSetting1.CameraDispList[(int)BufferIndex.Test]       = CamDisplayTest;
            VisionSetting1.SettingInit();
        }
Ejemplo n.º 22
0
 private void comboBoxROI_SelectedIndexChanged(object sender, EventArgs e)
 {
     selectedROI = (CamCDIRoiName)Enum.Parse(typeof(CamCDIRoiName), comboBoxROI.Text);
     Cst.Struct_Image temp = VSGlobalControl.m_VParam.Im[(int)selectedROI];
     numericUpDownIgnoreWidth1.Value   = (decimal)temp.EdgeMultiplePoint.IgnoreLength1;
     numericUpDownIgnoreWidth2.Value   = (decimal)temp.EdgeMultiplePoint.IgnoreLength2;
     numericUpDownSampleNum.Value      = (decimal)temp.EdgeMultiplePoint.Robust.RobustSampleNum;
     numericUpDownMaxRobustCount.Value = (decimal)temp.EdgeMultiplePoint.Robust.MaxRobustCount;
     selectBoxPrint.Checked            = VSGlobalControl.m_VParam.Im[(int)selectedROI].EdgeMultiplePoint.PrintMultiplePoint;
     VSGlobalControl.CleanAllTestMark(false);
     VSTest.Vision_ShowRect(VSGlobalControl.m_VParam.Im[(int)selectedROI].EdgeMultiplePoint.Rect, VSBase.COLOR_YELLOW, Cst.ViewLWidth25);
     if (VisionControl.IsXLine(temp.EdgeMultiplePoint.Dir))
     {
         labelIgnoreWidth1.Text = "左边";
         labelIgnoreWidth2.Text = "右边";
     }
     else
     {
         labelIgnoreWidth1.Text = "上边";
         labelIgnoreWidth2.Text = "下边";
     }
 }
Ejemplo n.º 23
0
 public override void FlushToDlg(VisionSetpBase visionSetp, VisionControl visionControl, Control Farther = null)
 {
     m_visionControl = visionControl;
     if (visionSetp != null)
     {
         FitCircircle = visionSetp as VisionFitCircircle;
         if (FitCircircle == null)
         {
             return;
         }
         FitCircircle = (VisionFitCircircle)visionSetp;
         textBox_TestStartAngle.Text   = FitCircircle.visionFitCircleParam.startAngledeg.ToString();
         textBox_TestEndAngle.Text     = FitCircircle.visionFitCircleParam.endAngleDeg.ToString();
         textBox_TestNum.Text          = FitCircircle.visionFitCircleParam.nTestNum.ToString();
         textBox_TestThreasoldVal.Text = FitCircircle.visionFitCircleParam.thresoldVal.ToString();
         textBox_Len1.Text             = FitCircircle.visionFitCircleParam.nLen1.ToString();
         textBox_Len2.Text             = FitCircircle.visionFitCircleParam.nLen2.ToString();
         comboBox_TestDir.Text         = FitCircircle.visionFitCircleParam.testDir.ToString();
         comboBox_TestPolarity.Text    = FitCircircle.visionFitCircleParam.testPolarity.ToString();
         comboBox_TestPos.Text         = FitCircircle.visionFitCircleParam.testPos.ToString();
     }
 }
Ejemplo n.º 24
0
        public static void bandStationAndVisionCtrl(string stationname, VisionControl visionControl, int index = 1)
        {
            Stationbase pb = StationMgr.GetInstance().GetStation(stationname);

            switch (index)
            {
            case 1:
                pb.VisionControl = visionControl;
                break;

            case 2:
                pb.VisionControl2 = visionControl;
                break;

            case 3:
                pb.VisionControl3 = visionControl;
                break;

            case 4:
                pb.VisionControl4 = visionControl;
                break;
            }
        }
Ejemplo n.º 25
0
        public void UpDataParam(bool bIsMachine, PointCoordinateElement point = null, VisionControl visionControl = null, bool bIsModify = false)
        {
            bIsModify = false;
            PointCoordinateElement pointparam = null;

            if (visionControl != null)
            {
                vc = visionControl;
            }
            if (point != null)
            {
                pointparam      = point;
                PointCoordinate = point;
            }
            else
            {
                pointparam = PointCoordinate;
            }
            if (pointparam == null)
            {
                return;
            }

            dMz = point.dMz;
            if (bIsMachine)
            {
                dMx = point.dMx;
                dMy = point.dMy;
            }
            else
            {
                dVx = point.dVx;
                dVy = point.dVy;
            }
            bIsAllPointMachine = bIsMachine;
            bModify            = bIsModify;
        }
Ejemplo n.º 26
0
 // Use this for initialization
 void Awake()
 {
     visionControl      = GetComponent <VisionControl>();
     statesMachine      = GetComponent <StatesMachine>();
     controladorNavMesh = GetComponent <ControladorNavMesh>();
 }
Ejemplo n.º 27
0
        public override bool Process_image(HObject ho_Image, VisionControl visionControl)
        {
            if (Mode1dCode == null)
            {
                MessageBox.Show(m_strStepName + "1CodeModle不存在", "Err", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(false);
            }
            if (visionControl == null)
            {
                MessageBox.Show(m_strStepName + "显示窗体不存在", "Err", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(false);
            }
            if (ho_Image == null || !ho_Image.IsInitialized())
            {
                MessageBox.Show(m_strStepName + "图片不存在", "Err", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(false);
            }
            HTuple  hv_DataCodeHandleHigh = null;
            HTuple  hv_ResultHandles      = new HTuple();
            HTuple  hv_DecodedDataStrings = new HTuple();
            HObject ho_SymbolRegions      = null;
            HObject ReduceImg             = null;

            try
            {
                if (visionControl != null && visionControl.isOpen())
                {
                    HOperatorSet.SetDraw(visionControl.GetHalconWindow(), "margin");
                }
                if (Mode1dCodeSearch != null && Mode1dCodeSearch.IsInitialized())
                {
                    HOperatorSet.ReduceDomain(ho_Image, Mode1dCodeSearch, out ReduceImg);
                }
                //HOperatorSet.SetBarCodeParam(Mode1dCode, "meas_thresh_abs", 0.0);
                // HOperatorSet.SetBarCodeParam(Mode1dCode, "element_size_min", 1.0);
                // HOperatorSet.SetBarCodeParam(Mode1dCode, "meas_param_estimation", "true");
                if (ReduceImg != null && ReduceImg.IsInitialized())
                {
                    HOperatorSet.FindBarCode(ReduceImg, out ho_SymbolRegions, Mode1dCode,
                                             "auto", out hv_DecodedDataStrings);
                }
                else
                {
                    HOperatorSet.FindBarCode(ho_Image, out ho_SymbolRegions, Mode1dCode,
                                             "auto", out hv_DecodedDataStrings);
                }
                if (hv_DecodedDataStrings != null && hv_DecodedDataStrings.Length > 0)
                {
                    if (visionControl != null && visionControl.isOpen())
                    {
                        HOperatorSet.SetColor(visionControl.GetHalconWindow(), "green");
                        HOperatorSet.DispObj(ho_SymbolRegions, visionControl.GetHalconWindow());
                        HalconExternFunExport.disp_message(visionControl.GetHalconWindow(), hv_DecodedDataStrings, "window", 100, 200, "green", "false");
                        vision1dCodeParam.RusultCode = hv_DecodedDataStrings.S;
                        if (Mode1dCodeSearch != null && Mode1dCodeSearch.IsInitialized())
                        {
                            HOperatorSet.DispObj(Mode1dCodeSearch, visionControl.GetHalconWindow());
                        }
                    }
                }
                else
                {
                    if (visionControl != null && visionControl.isOpen())
                    {
                        HOperatorSet.SetColor(visionControl.GetHalconWindow(), "red");
                        if (Mode1dCodeSearch != null && Mode1dCodeSearch.IsInitialized())
                        {
                            HOperatorSet.DispObj(Mode1dCodeSearch, visionControl.GetHalconWindow());
                        }
                        HalconExternFunExport.disp_message(visionControl.GetHalconWindow(), "读码失败", "window", 100, 200, "red", "false");
                    }
                }
            }
            catch (HalconException e)
            {
                // MessageBox.Show(m_strStepName + "图片不存在", "Err", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(false);
            }
            finally
            {
                ReduceImg?.Dispose();
                ho_SymbolRegions?.Dispose();
                // GC.SuppressFinalize(ReduceImg);
            }

            return(true);
        }
Ejemplo n.º 28
0
        public override bool Process_image(HObject obj, VisionControl visionControl)
        {
            if (visionFitCircleParam != null)
            {
                int bw;
                if (visionFitCircleParam.testDir == TestDir.从外到内)
                {
                    bw = 1;
                }
                else
                {
                    bw = 0;
                }
                string strTrans = "";
                if (visionFitCircleParam.testPolarity == TestPolarity.从明到暗)
                {
                    strTrans = "negative";
                }
                else if (visionFitCircleParam.testPolarity == TestPolarity.从暗到明)
                {
                    strTrans = "positive";
                }
                else
                {
                    strTrans = "all";
                }
                string strSelect = "";
                if (visionFitCircleParam.testPos == TestPos.前端)
                {
                    strSelect = "first";
                }
                else if (visionFitCircleParam.testPos == TestPos.后端)
                {
                    strSelect = "last";
                }
                else if (visionFitCircleParam.testPos == TestPos.最强)
                {
                    strSelect = "all";
                }
                try
                {
                    bool btrn = FitCirCle(obj, visionFitCircleParam.startAngledeg, visionFitCircleParam.endAngleDeg,
                                          bw, visionFitCircleParam.nTestNum,
                                          visionFitCircleParam.RadiusRoi, visionFitCircleParam.point2DRoixy.x, visionFitCircleParam.point2DRoixy.y,
                                          visionFitCircleParam.nLen1, visionFitCircleParam.nLen2, visionFitCircleParam.Sigma, visionFitCircleParam.thresoldVal,
                                          strTrans, strSelect, visionControl.GetHalconWindow(), 0, 0, out HTuple hv_RowCircleCenterFit, out HTuple hv_ColumnCircleCenterFit, out HTuple hv_RadiusCircleCenterFit,
                                          out HTuple hv_StartPhiCircleCenterFit, out HTuple hv_EndPhiCircleCenterFit, out HTuple hv_PointOrderCircleCenterFit);

                    if (btrn)
                    {
                        visionFitCircleParam.Resultpoint2D.x = hv_ColumnCircleCenterFit[0].D;
                        visionFitCircleParam.Resultpoint2D.y = hv_RowCircleCenterFit[0].D;
                        visionFitCircleParam.ResultRadius    = hv_RadiusCircleCenterFit[0].D;
                        return(true);
                    }
                    else
                    {
                        visionFitCircleParam.Resultpoint2D.x = 0;
                        visionFitCircleParam.Resultpoint2D.y = 0;
                        visionFitCircleParam.ResultRadius    = 0;
                        return(false);
                    }
                }
                catch (Exception e)
                {
                    visionFitCircleParam.Resultpoint2D.x = 0;
                    visionFitCircleParam.Resultpoint2D.y = 0;
                    visionFitCircleParam.ResultRadius    = 0;
                    _logger.Warn(m_strStepName + "参数为空,找园失败" + e.Message);
                    return(false);
                }
            }
            else
            {
                _logger.Warn(m_strStepName + "参数为空,找园失败");
                return(false);
            }
        }
Ejemplo n.º 29
0
 public virtual bool GenObj(HObject image, string path, VisionControl visionControl)
 {
     return(true);
 }
Ejemplo n.º 30
0
 public virtual bool Process_image(HObject obj, VisionControl visionControl)
 {
     return(true);
 }
Ejemplo n.º 31
0
 public void BindWindow(VisionControl vc)
 {
     m_Wnd = vc;
 }