示例#1
0
        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);
        }
示例#2
0
        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();
        }
示例#3
0
        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();
        }
示例#4
0
        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);
        }
示例#5
0
        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);
        }