private void btnFindPattern_Click(object sender, EventArgs e) { eFindPattern.SetROIEnd(); int maxInstances = Convert.ToInt32(nudFindCount.Value); float minScore = Convert.ToSingle(nudFindScore.Value); EFindContrastMode contrastMode = (EFindContrastMode)Enum.Parse(typeof(EFindContrastMode), cboFindMode.Text, true); float angleTolerance = Convert.ToSingle(nudAngleTolerance.Value); float scaleTolerance = Convert.ToSingle(nudScaleTolerance.Value); eFindPattern.FindPattern(maxInstances, minScore, contrastMode, angleTolerance, scaleTolerance); eFindPattern.GetPattern(); EPoint world = eCalibration.Base.SensorToWorld(new EPoint(eFindPattern.Results_CenterX, eFindPattern.Results_CenterY)); eFindPattern.PatternTable.Rows.Add( eFindPattern.PatternTable.Rows.Count + 1, eFindPattern.Results_Score, world.X, world.Y, eFindPattern.Results_Angle, eFindPattern.Results_Scale); eFindPattern.ShowResult(); eFixture.SetOrigin(eFindPattern.Results_CenterX, eFindPattern.Results_CenterY, eFindPattern.Results_Angle); }
private void btnFindCalibrPattern_Click(object sender, EventArgs e) { eCalibrFindPattern.SetROIEnd(); float minScore = Convert.ToSingle(nudCalibrFindScore.Value); EFindContrastMode contrastMode = (EFindContrastMode)Enum.Parse(typeof(EFindContrastMode), cboCalibrFindMode.Text, true); float angleTolerance = Convert.ToSingle(nudCalibrAngleTolerance.Value); float scaleTolerance = Convert.ToSingle(nudCalibrScaleTolerance.Value); eCalibrFindPattern.FindPattern(1, minScore, contrastMode, angleTolerance, scaleTolerance); eCalibrFindPattern.GetPattern(); eCalibrFindPattern.ShowResult(); }
private void btnFindPattern_Click(object sender, EventArgs e) { eFindPattern.SetROIEnd(); int maxInstances = Convert.ToInt32(nudFindCount.Value); float minScore = Convert.ToSingle(nudFindScore.Value); EFindContrastMode contrastMode = (EFindContrastMode)Enum.Parse(typeof(EFindContrastMode), cboFindMode.Text, true); float angleTolerance = Convert.ToSingle(nudAngleTolerance.Value); float scaleTolerance = Convert.ToSingle(nudScaleTolerance.Value); eFindPattern.FindPattern(maxInstances, minScore, contrastMode, angleTolerance, scaleTolerance); eFindPattern.GetPattern(); eFindPattern.ShowResult(); }
public bool FindPattern(int maxInstances, float minScore, EFindContrastMode contrastMode, float angleTolerance = 25, float scaleTolerance = 0.25f) { bool reSuccess = false; try { reSuccess = FindPattern(InputImage, ref foundPattern, maxInstances, minScore, contrastMode, 0, angleTolerance, 1, scaleTolerance, 3); } catch (EException exc) { StackFrame[] stackFrames = new StackTrace(true).GetFrames(); clsLogFile.LogTryCatch(stackFrames, exc.Message, true, true); } catch (Exception ex) { StackFrame[] stackFrames = new StackTrace(true).GetFrames(); clsLogFile.LogTryCatch(stackFrames, ex.Message, true, true); } return(reSuccess); }
private bool FindPattern(EImageBW8 inputImage, ref EFoundPattern[] foundPattern, int maxInstances, float minScore, EFindContrastMode contrastMode, float angleBias = 0, float angleTolerance = 25, float scaleBias = 1, float scaleTolerance = 0.25f, int scaleSearchExtent = 3) { bool reSuccess = false; try { Base.MaxInstances = (int)maxInstances; Base.MinScore = minScore; Base.ContrastMode = contrastMode; Base.AngleBias = angleBias; //角度偏差 Base.AngleTolerance = angleTolerance; //角度公差 Base.ScaleBias = scaleBias; //縮放偏差 Base.ScaleTolerance = scaleTolerance; //縮放公差 Base.ScaleSearchExtent = scaleSearchExtent; reSuccess = FindPattern(inputImage, ref foundPattern); } catch (EException exc) { StackFrame[] stackFrames = new StackTrace(true).GetFrames(); clsLogFile.LogTryCatch(stackFrames, exc.Message, true, true); } catch (Exception ex) { StackFrame[] stackFrames = new StackTrace(true).GetFrames(); clsLogFile.LogTryCatch(stackFrames, ex.Message, true, true); } return(reSuccess); }