public Action <double, double, dynamic> Create_DrawNG(TargetNG NGType)
        {
            switch (NGType)
            {
            case TargetNG.None:
                return(new Action <double, double, dynamic>((row, col, img) => {}));

            case TargetNG.IR5V:
                return(FnDrawCircle(1, FailColor["IR5V"]));

            case TargetNG.Full:
                return(FnDrawCircle(2, FailColor["Full"]));

            case TargetNG.VF1:
                return(FnDrawCircle(3, FailColor["VF1"]));

            case TargetNG.VF2:
                return(FnDrawCircle(5, FailColor["VF2"]));

            case TargetNG.VF3:
                return(FnDrawCircle(6, FailColor["VF3"]));

            case TargetNG.VF1IR:
                return(FnDrawCircle(4, FailColor["VF1IR"]));
            }
            return(null);
        }
        public Func <int, int, bool> Create_CheckTargetNg(TargetNG NGType)
        {
            switch (NGType)
            {
            case TargetNG.None:
                return(new Func <int, int, bool>((row, col) => { return false; }));

            case TargetNG.Full:
                return(new Func <int, int, bool>((row, col) => {
                    if (TargetData[new int[] { row, col }]["Label"] == "NG")
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }));

            case TargetNG.IR5V:
                return(new Func <int, int, bool>((row, col) => {
                    if (TargetData[new int[] { row, col }]["IR5V"] < 1.0)
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }));

            case TargetNG.VF1:
                return(new Func <int, int, bool>((row, col) => {
                    if (TargetData[new int[] { row, col }]["VF1"] < 1.8)
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }));

            case TargetNG.VF2:
                return(new Func <int, int, bool>((row, col) => {
                    if (TargetData[new int[] { row, col }]["VF2"] < 1.8)
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }));

            case TargetNG.VF3:
                return(new Func <int, int, bool>((row, col) => {
                    if (TargetData[new int[] { row, col }]["VF3"] < 1.8)
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }));

            case TargetNG.VF1IR:
                return(new Func <int, int, bool>((row, col) => {
                    var target = TargetData[new int[] { row, col }];
                    if (target["VF1"] < 1.8 || target["IR"] < 1)
                    {
                        return true;
                    }
                    else
                    {
                        return false;
                    }
                }));
            }
            return(null);
        }