123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- #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 das vom ausgewählten Bild um offset Bilder entfernte Bild zurück
- Frame *getFrame( int offset ) 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 die größte vergebene Objekt Id zurück;
- int getMaxObjectId() 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
|