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; }
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); }
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); }
//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); } }
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; }
//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); } }
public void SetPatternReference(CogPMAlignPattern _Pattern) { PatternProc.Pattern = _Pattern; }