annotationxml.h 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. #ifndef ANNOTATIONXML_H
  2. #define ANNOTATIONXML_H
  3. #include <QString>
  4. #include <QRect>
  5. #include <QLinkedList>
  6. #include <QPolygon>
  7. #include "frame.h"
  8. #include "sequenz.h"
  9. #include <QLabel>
  10. #include <QFileInfo>
  11. #include <QProgressDialog>
  12. /*
  13. * Diese Klasse lädt die annotierten Bildsequenzen
  14. */
  15. class AnnotationLoader
  16. {
  17. private:
  18. Sequenz *sequenz; // Enthält die geladene Sequenz
  19. QString error; // Enthält eine Fehlermeldung, falls beim laden ein Fehler
  20. // aufgetreten ist
  21. public:
  22. // Lädt eine Bildsequenz
  23. // directory: Der Pfad zum Ordner, der die Bildsequenz enthält
  24. // status: Im Verlauf des Ladens wird der Statustext in diesem Label
  25. // gesetzt
  26. AnnotationLoader(QString directory,
  27. QLabel *status);
  28. ~AnnotationLoader();
  29. // Gibt die geladene Sequenz zurück
  30. // 0 falls beim Laden ein Fehler aufgetreten ist
  31. Sequenz* getSequenz();
  32. // Gibt eine Fehlermeldung zurück, falls beim Laden ein Fehler aufgetreten
  33. // ist
  34. QString getErrorMessage();
  35. };
  36. /*
  37. * Diese Klasse erstellt eine neue Bildsequenz aus einem Ordner mit Bildern,
  38. * oder einer csv Datei
  39. */
  40. class AnnotationCreator
  41. {
  42. private:
  43. Sequenz *sequenz;
  44. int numFrames;
  45. // Zählt alle Bilder in einem Ordner
  46. // f: die Informationen zu dem Ordner
  47. int getImageCount(QFileInfo f);
  48. // Erstellt Annotationen zu allen Bildern in einem Ordner
  49. // file: Die Information zur Datei, zu der Annotationen erstellt werden
  50. // sollen
  51. // index: Der Index des Bildes
  52. // kamera: Der Name der aktuellen Kamera
  53. // targetDir: Der Pfad zum Ziel Ordner
  54. // nLen: Die maximale Länge des Namens
  55. // status: Ein Zeiger auf den Status Text
  56. // offset: Der Index des sersten Bildes der Sequenz
  57. // limit: Die Anzahl der Bilder in der Sequenz
  58. // progress: Ein Dialog mit einer Fortschrittsleiste
  59. // kamId: Die Id der momentanen Kamera
  60. void createAnnotationFor(QFileInfo file,
  61. int & index,
  62. QString kamera,
  63. QString targetDir,
  64. int nLen,
  65. QLabel *status,
  66. int & offset,
  67. int & limit,
  68. QProgressDialog& progress,
  69. int & kamId);
  70. public:
  71. // Erstellt eine neue Sequenz und Lädt diese
  72. // directory: Der Pfad zu dem Ordner, welche die Bilder der neuen Sequenz
  73. // enthält
  74. // status: Im Verlauf des Erstellens wird der Statustext in diesem Label
  75. // gesetzt
  76. AnnotationCreator(QString directory,
  77. QLabel *status);
  78. ~AnnotationCreator();
  79. // Gibt die geladene neu erstellte Sequenz zurück
  80. // 0 falls beim Erstellen oder beim Laden ein Fehler aufgetreten ist
  81. Sequenz* getSequenz();
  82. };
  83. #endif // ANNOTATIONXML_H