Ejemplo n.º 1
0
        public static HClassTrainData Deserialize(Stream stream)
        {
            HClassTrainData hclassTrainData = new HClassTrainData();

            hclassTrainData.DeserializeClassTrainData(HSerializedItem.Deserialize(stream));
            return(hclassTrainData);
        }
Ejemplo n.º 2
0
        /// <summary>
        ///   Selects an optimal subset from a set of features to solve a certain  classification problem.
        ///   Modified instance represents: A trained k-NN classifier using only the selected  features.
        /// </summary>
        /// <param name="classTrainDataHandle">Handle of the training data.</param>
        /// <param name="selectionMethod">Method to perform the selection. Default: "greedy"</param>
        /// <param name="genParamName">Names of generic parameters to configure the selection process and the classifier. Default: []</param>
        /// <param name="genParamValue">Values of generic parameters to configure the  selection process and the classifier. Default: []</param>
        /// <param name="score">The achieved score using two-fold cross-validation.</param>
        /// <returns>The selected feature set, contains  indices or names.</returns>
        public HTuple SelectFeatureSetKnn(
            HClassTrainData classTrainDataHandle,
            string selectionMethod,
            string genParamName,
            double genParamValue,
            out HTuple score)
        {
            this.Dispose();
            IntPtr proc = HalconAPI.PreCall(1802);

            HalconAPI.Store(proc, 0, (HTool)classTrainDataHandle);
            HalconAPI.StoreS(proc, 1, selectionMethod);
            HalconAPI.StoreS(proc, 2, genParamName);
            HalconAPI.StoreD(proc, 3, genParamValue);
            HalconAPI.InitOCT(proc, 0);
            HalconAPI.InitOCT(proc, 1);
            HalconAPI.InitOCT(proc, 2);
            int    err1 = HalconAPI.CallProcedure(proc);
            int    err2 = this.Load(proc, 0, err1);
            HTuple tuple;
            int    err3       = HTuple.LoadNew(proc, 1, err2, out tuple);
            int    procResult = HTuple.LoadNew(proc, 2, HTupleType.DOUBLE, err3, out score);

            HalconAPI.PostCall(proc, procResult);
            GC.KeepAlive((object)this);
            GC.KeepAlive((object)classTrainDataHandle);
            return(tuple);
        }
Ejemplo n.º 3
0
        public HClassTrainData Clone()
        {
            HSerializedItem serializedItemHandle = this.SerializeClassTrainData();
            HClassTrainData hclassTrainData      = new HClassTrainData();

            hclassTrainData.DeserializeClassTrainData(serializedItemHandle);
            serializedItemHandle.Dispose();
            return(hclassTrainData);
        }
Ejemplo n.º 4
0
        internal static int LoadNew(IntPtr proc, int parIndex, int err, out HClassTrainData[] obj)
        {
            HTuple tuple;

            err = HTuple.LoadNew(proc, parIndex, err, out tuple);
            obj = new HClassTrainData[tuple.Length];
            for (int index = 0; index < tuple.Length; ++index)
            {
                obj[index] = new HClassTrainData(tuple[index].IP);
            }
            return(err);
        }
Ejemplo n.º 5
0
        /// <summary>
        ///   Add training data to a k-nearest neighbors (k-NN) classifier.
        ///   Instance represents: Handle of a k-NN which receives the  training data.
        /// </summary>
        /// <param name="classTrainDataHandle">Training data for a classifier.</param>
        public void AddClassTrainDataKnn(HClassTrainData classTrainDataHandle)
        {
            IntPtr proc = HalconAPI.PreCall(1790);

            this.Store(proc, 0);
            HalconAPI.Store(proc, 1, (HTool)classTrainDataHandle);
            int procResult = HalconAPI.CallProcedure(proc);

            HalconAPI.PostCall(proc, procResult);
            GC.KeepAlive((object)this);
            GC.KeepAlive((object)classTrainDataHandle);
        }
Ejemplo n.º 6
0
        /// <summary>
        ///   Get the training data of a k-nearest neighbors (k-NN) classifier.
        ///   Instance represents: Handle of the k-NN classifier  that contains training data.
        /// </summary>
        /// <returns>Handle of the training data of the classifier.</returns>
        public HClassTrainData GetClassTrainDataKnn()
        {
            IntPtr proc = HalconAPI.PreCall(1789);

            this.Store(proc, 0);
            HalconAPI.InitOCT(proc, 0);
            int             err = HalconAPI.CallProcedure(proc);
            HClassTrainData hclassTrainData;
            int             procResult = HClassTrainData.LoadNew(proc, 0, err, out hclassTrainData);

            HalconAPI.PostCall(proc, procResult);
            GC.KeepAlive((object)this);
            return(hclassTrainData);
        }
Ejemplo n.º 7
0
        /// <summary>
        ///   Select certain features from training data to create  training data containing less features.
        ///   Instance represents: Handle of the training data.
        /// </summary>
        /// <param name="subFeatureIndices">Indices or names to select the subfeatures or columns.</param>
        /// <returns>Handle of the reduced training data.</returns>
        public HClassTrainData SelectSubFeatureClassTrainData(HTuple subFeatureIndices)
        {
            IntPtr proc = HalconAPI.PreCall(1783);

            this.Store(proc, 0);
            HalconAPI.Store(proc, 1, subFeatureIndices);
            HalconAPI.InitOCT(proc, 0);
            int err = HalconAPI.CallProcedure(proc);

            HalconAPI.UnpinTuple(subFeatureIndices);
            HClassTrainData hclassTrainData;
            int             procResult = HClassTrainData.LoadNew(proc, 0, err, out hclassTrainData);

            HalconAPI.PostCall(proc, procResult);
            GC.KeepAlive((object)this);
            return(hclassTrainData);
        }
Ejemplo n.º 8
0
 internal static int LoadNew(IntPtr proc, int parIndex, int err, out HClassTrainData obj)
 {
     obj = new HClassTrainData(HTool.UNDEF);
     return(obj.Load(proc, parIndex, err));
 }