public void classify(HObject ho_Regions, HTuple hv_GMMHandle, out HTuple hv_Classes1) { // Stack for temporary objects HObject[] OTemp = new HObject[20]; // Local iconic variables HObject ho_Region = null, ho_ConnectedRegions = null; HObject ho_SelectedRegions = null; // Local control variables HTuple hv_Number = null, hv_J = null, hv_Features = new HTuple(); HTuple hv_ClassID = new HTuple(), hv_ClassProb = new HTuple(); HTuple hv_Density = new HTuple(), hv_KSigmaProb = new HTuple(); // Initialize local and output iconic variables HOperatorSet.GenEmptyObj(out ho_Region); HOperatorSet.GenEmptyObj(out ho_ConnectedRegions); HOperatorSet.GenEmptyObj(out ho_SelectedRegions); HOperatorSet.CountObj(ho_Regions, out hv_Number); hv_Classes1 = new HTuple(); HTuple end_val2 = hv_Number; HTuple step_val2 = 1; for (hv_J = 1; hv_J.Continue(end_val2, step_val2); hv_J = hv_J.TupleAdd(step_val2)) { ho_Region.Dispose(); HOperatorSet.SelectObj(ho_Regions, out ho_Region, hv_J); ho_ConnectedRegions.Dispose(); HOperatorSet.Connection(ho_Regions, out ho_ConnectedRegions); ho_SelectedRegions.Dispose(); HOperatorSet.SelectShape(ho_ConnectedRegions, out ho_SelectedRegions, "area", "and", 1000, 100000); { HObject ExpTmpOutVar_0; HOperatorSet.SelectObj(ho_Region, out ExpTmpOutVar_0, hv_J); ho_Region.Dispose(); ho_Region = ExpTmpOutVar_0; } get_features(ho_SelectedRegions, out hv_Features); HOperatorSet.ClassifyClassGmm(hv_GMMHandle, hv_Features, 1, out hv_ClassID, out hv_ClassProb, out hv_Density, out hv_KSigmaProb); HOperatorSet.EvaluateClassGmm(hv_GMMHandle, hv_Features, out hv_ClassProb, out hv_Density, out hv_KSigmaProb); hv_Classes1 = hv_Classes1.TupleConcat(hv_ClassID); } ho_Region.Dispose(); ho_ConnectedRegions.Dispose(); ho_SelectedRegions.Dispose(); return; }