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) { } }