コード例 #1
0
        private void btnUnitPatternAreaSet_Click(object sender, EventArgs e)
        {
            #region Button Status
            btnUnitPatternSearchAreaShow.Enabled  = true;        btnUnitPatternSearchAreaShow.BackColor = Color.SandyBrown;
            btnUnitPatternSearchAreaSet.Enabled   = false;        btnUnitPatternSearchAreaSet.BackColor = Color.Gray;
            btnUnitPatternOriginCenterSet.Enabled = false;      btnUnitPatternOriginCenterSet.BackColor = Color.Gray;
            btnUnitPatternAreaShow.Enabled        = true;              btnUnitPatternAreaShow.BackColor = Color.PaleGreen;
            btnUnitPatternAreaSet.Enabled         = false;              btnUnitPatternAreaSet.BackColor = Color.Gray;
            //btnUnitPatternAreaCancel.Enabled = false;
            #endregion Button Status

            CogRectangle   _PatternRegion = kpTeachDisplay.GetInterActiveRectangle();
            CogPointMarker _PatternOrigin = new CogPointMarker();
            _PatternOrigin.SetCenterRotationSize(_PatternRegion.CenterX, _PatternRegion.CenterY, 0, 2);

            kpTeachDisplay.ClearDisplay("PatternRegion");
            kpTeachDisplay.ClearDisplay("PatternOriginPoint");
            kpTeachDisplay.DrawStaticShape(_PatternRegion, "PatternRegion", CogColorConstants.Green, 2, CogGraphicLineStyleConstants.Dash);
            kpTeachDisplay.DrawStaticShape(_PatternOrigin, "PatternOriginPoint", CogColorConstants.Green, 14);

            MapDataParam.Unit.PatternAreaCenterX = _PatternRegion.CenterX;
            MapDataParam.Unit.PatternAreaCenterY = _PatternRegion.CenterY;
            MapDataParam.Unit.PatternAreaWidth   = _PatternRegion.Width;
            MapDataParam.Unit.PatternAreaHeight  = _PatternRegion.Height;
            MapDataParam.Unit.PatternAreaOriginX = _PatternOrigin.X;
            MapDataParam.Unit.PatternAreaOriginY = _PatternOrigin.Y;

            //Pattern 등록
            CogPMAlignPattern _Pattern = InspPattern.GetPatternReference(OriginImage, _PatternRegion, _PatternOrigin.X, _PatternOrigin.Y);
            kpPatternDisplay.SetDisplayImage((CogImage8Grey)_Pattern.GetTrainedPatternImage());
            MapDataParam.Info.UnitPattern = _Pattern;

            SelectingRectName = SelectedRectName = "";
            IsDrawPatterns    = false;
        }
コード例 #2
0
        public bool GetPatternReference(CogImage8Grey _SrcImage, CogRectangle _Region, double _OriginX, double _OriginY, ref CogPMAlignPattern _Pattern)
        {
            //CogPMAlignPattern _Pattern = new CogPMAlignPattern();

            _Pattern = new CogPMAlignPattern();
            CogRectangleAffine _ReferRegionAffine = new CogRectangleAffine();

            _ReferRegionAffine.SetCenterLengthsRotationSkew(_Region.CenterX, _Region.CenterY, _Region.Width, _Region.Height, 0, 0);

            CogAffineTransformTool _AffineTool = new CogAffineTransformTool();

            _AffineTool.InputImage = _SrcImage;
            _AffineTool.Region     = _ReferRegionAffine;
            _AffineTool.Run();

            _Pattern.TrainImage          = (CogImage8Grey)_AffineTool.OutputImage;
            _Pattern.TrainRegion         = _ReferRegionAffine;
            _Pattern.Origin.TranslationX = _OriginX;
            _Pattern.Origin.TranslationY = _OriginY;

            try
            {
                _Pattern.Train();
            }

            catch
            {
                return(false);
            }

            return(true);
        }
コード例 #3
0
        private bool Inspection(CogImage8Grey _SrcImage, CogRectangle _Region, CogPMAlignPattern _Pattern)
        {
            bool _Result = false;

            HistogramResult = HistogramProc.Execute(_SrcImage, _Region);
            //HistogramResult.Mean;

            OneImageProc.InputImage = _SrcImage;
            //OneImageProc.Operators.Add()

            return(_Result);
        }
コード例 #4
0
        //Ziv 13.7.15
        public CogPMAlignPattern loadPattern(string cameraName, string orderName)
        {
            string path = Application.StartupPath;

            if (path.ToLower().EndsWith(@"\bin\release"))
            {
                path = path.ToLower().Replace(@"\bin\release", @"\bin\debug");
            }

            if (!(path.ToLower().EndsWith(@"\bin\debug")))
            {
                return(null);
            }

            path += ("\\CognexStahli\\" + cameraName + "\\" + orderName + ".vpp");

            try
            {
                if (string.IsNullOrEmpty(path))
                {
                    return(null);
                }
                //if (!Directory.Exists(path)) Directory.CreateDirectory(path);
                //  path += ("\\" + orderName + ".vpp");

                CogPMAlignPattern pattern = CogSerializer.LoadObjectFromFile(path) as Cognex.VisionPro.PMAlign.CogPMAlignPattern;
                if (pattern != null)
                {
                    return(pattern);
                }
                else
                {
                    MessageBox.Show("Error loading " + cameraName + "pattern");
                    return(pattern);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                return(null);
            }
        }
コード例 #5
0
        public bool PatternInspection(CogImage8Grey _SrcImage, CogRectangle _Region, CogPMAlignPattern _Pattern)
        {
            bool _Result = true;

            try
            {
                PatternProc.InputImage = _SrcImage;
                PatternProc.SearchRegion = _Region;
                PatternProc.Pattern = _Pattern;
                PatternProc.Run();
                GetResult();
            }
            catch(System.Exception ex)
            {
                CLogManager.AddSystemLog(CLogManager.LOG_TYPE.ERR, "InspectionMultiPattern - Pattern Inspection Exception : " + ex.ToString(), CLogManager.LOG_LEVEL.LOW);
                _Result = false;
            }

            return _Result;
        }
コード例 #6
0
        //Ziv 13.7.15
        public void savePattern(string cameraName, string orderName, CogPMAlignPattern pattern)
        {
            string path;// = Application.StartupPath;

            path = Directory.GetCurrentDirectory();

            if (path.ToLower().EndsWith(@"\bin\release"))
            {
                path = path.ToLower().Replace(@"\bin\release", @"\bin\debug");
            }

            if (!(path.ToLower().EndsWith(@"\bin\debug")))
            {
                return;
            }

            path += ("\\CognexStahli\\" + cameraName);

            try
            {
                if (string.IsNullOrEmpty(path))
                {
                    return;
                }
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }
                path += ("\\" + orderName + ".vpp");

                CogSerializer.SaveObjectToFile(pattern, path);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
コード例 #7
0
ファイル: InspectionPattern.cs プロジェクト: zoom8374/Dev2018
 public void SetPatternReference(CogPMAlignPattern _Pattern)
 {
     PatternProc.Pattern = _Pattern;
 }