#ifndef ANNOTATIONXML_H #define ANNOTATIONXML_H #include #include #include #include #include "frame.h" #include "sequenz.h" #include #include #include /* * Diese Klasse lädt die annotierten Bildsequenzen */ class AnnotationLoader { private: Sequenz *sequenz; // Enthält die geladene Sequenz QString error; // Enthält eine Fehlermeldung, falls beim laden ein Fehler // aufgetreten ist public: // Lädt eine Bildsequenz // directory: Der Pfad zum Ordner, der die Bildsequenz enthält // status: Im Verlauf des Ladens wird der Statustext in diesem Label // gesetzt AnnotationLoader(QString directory, QLabel *status); ~AnnotationLoader(); // Gibt die geladene Sequenz zurück // 0 falls beim Laden ein Fehler aufgetreten ist Sequenz* getSequenz(); // Gibt eine Fehlermeldung zurück, falls beim Laden ein Fehler aufgetreten // ist QString getErrorMessage(); }; /* * Diese Klasse erstellt eine neue Bildsequenz aus einem Ordner mit Bildern, * oder einer csv Datei */ class AnnotationCreator { private: Sequenz *sequenz; int numFrames; // Zählt alle Bilder in einem Ordner // f: die Informationen zu dem Ordner int getImageCount(QFileInfo f); // Erstellt Annotationen zu allen Bildern in einem Ordner // file: Die Information zur Datei, zu der Annotationen erstellt werden // sollen // index: Der Index des Bildes // kamera: Der Name der aktuellen Kamera // targetDir: Der Pfad zum Ziel Ordner // nLen: Die maximale Länge des Namens // status: Ein Zeiger auf den Status Text // offset: Der Index des sersten Bildes der Sequenz // limit: Die Anzahl der Bilder in der Sequenz // progress: Ein Dialog mit einer Fortschrittsleiste // kamId: Die Id der momentanen Kamera void createAnnotationFor(QFileInfo file, int & index, QString kamera, QString targetDir, int nLen, QLabel *status, int & offset, int & limit, QProgressDialog& progress, int & kamId); public: // Erstellt eine neue Sequenz und Lädt diese // directory: Der Pfad zu dem Ordner, welche die Bilder der neuen Sequenz // enthält // status: Im Verlauf des Erstellens wird der Statustext in diesem Label // gesetzt AnnotationCreator(QString directory, QLabel *status); ~AnnotationCreator(); // Gibt die geladene neu erstellte Sequenz zurück // 0 falls beim Erstellen oder beim Laden ein Fehler aufgetreten ist Sequenz* getSequenz(); }; #endif // ANNOTATIONXML_H