예제 #1
0
        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;
        }