/// <summary>
 /// fügt alle <see cref="ImageObject"/>s des <see cref="ObjectLayer"/> zu den <see cref="Instances"/> hinzu
 /// </summary>
 /// <param name="instances">Datensatz</param>
 /// <param name="objectLayer">auszuwertender <see cref="ObjectLayer"/></param>
 public static void AddImageObjects(this Instances instances, ObjectLayer objectLayer)
 {
     foreach (var io in objectLayer.Objects)
     {
         instances.CreateWekaInstance(io);
     }
 }
Beispiel #2
0
        /// <summary>
        /// Klassifiziert eine Instanz
        /// </summary>
        /// <param name="classifier">Klassifikator</param>
        /// <param name="instances">dem Klassifikator zugehöriger Datensatz</param>
        /// <param name="features">Merkmale der Instanz</param>
        /// <returns>Klassenname</returns>
        public static string Classify(this Classifier classifier, Instances instances, IEnumerable <Tuple <string, double> > features)
        {
            var instance   = instances.CreateWekaInstance(null, features, true);
            var classIndex = classifier.classifyInstance(instance);

            return(instances.classAttribute().value((int)classIndex));
        }
Beispiel #3
0
        /// <summary>
        /// Klassifiziert ein <see cref="ImageObject"/> und weist ihm die Klasse zu
        /// </summary>
        /// <param name="classifier">Klassifikator</param>
        /// <param name="instances">dem Klassifikator zugehöriger Datensatz</param>
        /// <param name="imageObject"><see cref="ImageObject"/></param>
        /// <param name="resolveClassByName">Auflösung für die Klassen</param>
        /// <returns>Klasse</returns>
        public static Class Classify(this Classifier classifier, Instances instances, ImageObject imageObject, Func <string, Class> resolveClassByName)
        {
            var instance   = instances.CreateWekaInstance(imageObject, true);
            var classIndex = classifier.classifyInstance(instance);
            var @class     = resolveClassByName(instances.classAttribute().value((int)classIndex));

            imageObject.Class = @class;
            return(@class);
        }
 /// <summary>
 /// erstellt eine WEKA-<see cref="Instance"/> aus einem <see cref="ImageObject"/> und fügt sie den <see cref="Instances"/> hinzu
 /// </summary>
 /// <param name="instances">Datensatz</param>
 /// <param name="imageObject"><see cref="ImageObject"/></param>
 /// <param name="forceAdd">wenn true wird eine unklassifizierte <see cref="Instance"/> dem Datensatz hinzugefügt, sonst wird keine <see cref="Instance"/> erzeugt</param>
 /// <returns>WEKA-<see cref="Instance"/>, eingehangen in den übergebenen Datensatz oder null</returns>
 public static Instance CreateWekaInstance(this Instances instances, ImageObject imageObject, bool forceAdd = false) => instances.CreateWekaInstance(imageObject.Class?.Name, imageObject.Features.Select(f => Tuple.Create(f.Name, f.Value)), forceAdd);