1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- #ifndef SEQUENZ_H
- #define SEQUENZ_H
- #include <QString>
- #include <kamera.h>
- #include <object.h>
- #include <QList>
- #include <QLabel>
- /*
- * Verwaltet alle Daten einer Bildsequenz
- */
- class Sequenz
- {
- public:
- // Eine Datenstruktur, welche eine Objekt-Klasse repräsentiert
- struct SegmentationClass
- {
- int id;
- QString name;
- };
- private:
- QString path; // Der Pfad zum Ordner der Sequenz
- int ref; // Reference Counting
- int frameIndex; // Der Index des ausgewählten Bildes
- int cameraIndex; // Der Index der ausgewählten Kamera
- QList< Kamera* > cams; // Eine Liste mit Kameras
- QList< Object > objects; // Eine Liste mit Objekten
- QList< SegmentationClass > classes; // Eine Liste mit Objekt Klassen
- public:
- Sequenz( QString p, QList< Kamera* > c, QList< Object > pa );
- ~Sequenz();
- // Gibt eine Liste mit allen bekannten Objekt Klassen zurück
- QList< SegmentationClass > getClasses() const;
- // Setzt den Namen der Objekt Klasse mit der ID id auf name
- bool setClassName( int id, QString name );
- // Prüft, ob bereits annotierte Objekte in der Sequenz vorhanden sind
- bool hasAnnotatedObjects() const;
- // Gibt den Namen der Objekt Klasse mit der ID id zurück
- QString getClassName( int id ) const;
- // Gibt die ID der Objekt Klasse mit dem Namen name zurück
- int getClassId( QString name ) const;
- // Gibt die ID der Klasse des Objektes mit der ID objektId zurück
- int getClassOfObject( QString objektId ) const;
- // Setzt die ID der Klasse des Objektes mit der ID objektId auf classId
- void setClassOfObject( QString objektId, int classId );
- // Fügt eine neue Objekt Klasse mit Namen name hinzu
- int addClass( QString name );
- // Entfernt die Objektklasse mit der ID id
- bool removeClass( int id );
- // Wählt das frame-te Bild der cam-ten Kamera aus
- void selectFrame( int cam, int frame );
- // Gibt das ausgewählte Bild zurück
- Frame *getFrame() const;
- // Gibt den Index der ausgewählten Kamera zurück
- int getSelectedCamera() const;
- // Gibt den Index des Ausgewählten Bildes (innerhalb der Kamera) zurück
- int getSelectedFrame() const;
- // Gibt eine Liste mit Kameras zurück
- const QList< Kamera* > &getCameras() const;
- // Wählt das nachfolgende Bild aus
- void nextFrame();
- // Wählt das vorherige Bild aus
- void previousFrame();
- // Gibt 1 zurück, wenn in der Sequenz ein nachfolgendes Bild existiert
- bool hasNextFrame() const;
- // Gibt 1 zurück, wenn in der Sequenz ein vorheriges Bild existiert
- bool hasPreviousFrame() const;
- // Gibt eine Liste mit allen vergebenen ObjektIds zurück
- QList< QString > getObjectNames() const;
- // Gibt von dem ausgewählten Bild aus das count-nächste Bild von dem Objekt mit ID objektId zurück.
- QImage previousObjectImage( QString objektId, int count = 1 ) const;
- // Fügt eine neue ObjektID mit der Klassen ID classID hinzu
- void addObjectName( QString objektId, int classId );
- // Fügt eine neue ObjektID hinzu
- void addObjectName( QString objektId );
- // Speichert die Sequenz.
- // status: Ein Label, in denen Fortschrittsinformationen geschrieben werden
- void saveToPath( QLabel *status ) const;
- // Erhöht den Reference Counter um 1
- void refNew();
- // Verringert den Reference Counter um 1 (bei 0 löscht sich das Objekt selbst)
- void refRelease();
- };
- #endif // SEQUENZ_H
|