private void btnRunmannual_Click(object sender, EventArgs e)
        {
            HOperatorSet.FindScaledShapeModel(Img, ModelID, -0.39, 0.79, 0.8, 1.0, 0.5, 0, 0.5, "least_squares", 5, 0.8, out HTuple Row, out HTuple Column, out HTuple Angle, out HTuple Scales, out HTuple Score);
            HOperatorSet.HomMat2dIdentity(out HTuple HM2D);
            HOperatorSet.HomMat2dTranslate(HM2D, Row[0], Column[0], out HTuple HM2DTranslate);
            HOperatorSet.HomMat2dRotate(HM2DTranslate, Angle[0], Row[0], Column[0], out HTuple Homat2DRotary);
            HOperatorSet.HomMat2dScale(Homat2DRotary, Scales[0], Scales[0], Row[0], Column[0], out HTuple HM2DALL);
            HOperatorSet.GetShapeModelContours(out HObject ModelContour, ModelID, 1);
            HOperatorSet.AffineTransContourXld(ModelContour, out HObject ContourAffine, HM2DALL);
            window.SetColor("green");
            window.SetDraw("margin");
            window.SetLineWidth(3);
            ContourAffine.DispObj(window);
            //ModelContour.DispObj(window);


            //DataTable dt = Lib.GetTableData(string.Format("select * from TrainModel where Roi = '{0}'", "Roi3"));
            //double _X = Lib.ToDouble(dt.Rows[0]["X"]);
            //double _Y = Lib.ToDouble(dt.Rows[0]["Y"]);
            //double _L1 = Lib.ToDouble(dt.Rows[0]["L1"]);
            //double _L2 = Lib.ToDouble(dt.Rows[0]["L2"]);
            //double _Theta = Lib.ToDouble(dt.Rows[0]["Theta"]);

            datatrain dtRec  = lstDataTrain.FirstOrDefault(o => o.Roi == "Roi3");
            double    _X     = dtRec.X;
            double    _Y     = dtRec.Y;
            double    _L1    = dtRec.L1;
            double    _L2    = dtRec.L2;
            double    _Theta = dtRec.Theta;



            datatrain dttMaster    = lstDataTrain.FirstOrDefault(o => o.Roi == "Master");
            double    _XMaster     = dttMaster.X;
            double    _YMaster     = dttMaster.Y;
            double    _L1Master    = dttMaster.L1;
            double    _L2Master    = dttMaster.L2;
            double    _ThetaMaster = dttMaster.Theta;


            HOperatorSet.GenRectangle2(out HObject RoiCheck, _X, _Y, _Theta, _L1, _L2);

            //HOperatorSet.AffineTransRegion(RoiCheck, out HObject RoicheckAffine, HM2DALL, "nearest_neighbor");
            //HOperatorSet.HomMat2dIdentity(out HTuple Homat2D);
            //HOperatorSet.HomMat2dTranslate(Homat2D, -_X, -_Y, out HTuple Homat2DTrans);
            //HOperatorSet.AffineTransRegion(RoicheckAffine, out HObject RoicheckFinal, Homat2DTrans, "nearest_neighbor");
            //RoicheckFinal.DispObj(window);


            HOperatorSet.VectorAngleToRigid(_XMaster, _YMaster, _ThetaMaster, Row[0], Column[0], Angle[0], out HTuple HM2DMaster);
            HOperatorSet.AffineTransRegion(RoiCheck, out HObject RoiCheckTrans, HM2DMaster, "nearest_neighbor");
            RoiCheck.DispObj(window);
            RoiCheckTrans.DispObj(window);
        }
        public void loadMastertrain()
        {
            lstDataTrain.Clear();
            DataTable dttb = Lib.GetTableData("select * from TrainModel");

            try
            {
                for (int i = 0; i < dttb.Rows.Count; i++)
                {
                    datatrain dtget = new datatrain();
                    dtget.Roi   = Lib.ToString(dttb.Rows[i]["Roi"]);
                    dtget.X     = Lib.ToDouble(dttb.Rows[i]["X"]);
                    dtget.Y     = Lib.ToDouble(dttb.Rows[i]["Y"]);
                    dtget.L1    = Lib.ToDouble(dttb.Rows[i]["L1"]);
                    dtget.L2    = Lib.ToDouble(dttb.Rows[i]["L2"]);
                    dtget.Theta = Lib.ToDouble(dttb.Rows[i]["Theta"]);
                    lstDataTrain.Add(dtget);
                }
            }

            catch (Exception ex)
            {
            }
        }