iVS3D v2.0.9
Loading...
Searching...
No Matches
modelinputpictures.h
1#ifndef MODELINPUTPICTURES_H
2#define MODELINPUTPICTURES_H
3
4#include "reader.h"
5#include "readerfactory.h"
6#include "ISerializable.h"
7#include "stringcontainer.h"
8#include "concurrentreader.h"
9#include "metadatamanager.h"
10#include "readerparams.h"
11
12#include <QObject>
13#include <QPoint>
14#include <opencv2/core.hpp>
15#include <opencv2/videoio.hpp>
16#include <opencv2/imgcodecs.hpp>
17#include <opencv2/core/utils/filesystem.hpp>
18#include <QByteArray>
19#include <QVariant>
20#include <QJsonObject>
21#include <QJsonDocument>
22#include <QJsonArray>
23#include <QVector>
24#include <QVariant>
25#include <QJsonObject>
26#include <QVector>
27#include <QStringList>
28#include <QFileInfo>
29#include <QDir>
30
31
45class ModelInputPictures: public QObject, public ISerializable
46{
47Q_OBJECT
48
49
50
51public:
63 class Memento {
64 friend class ModelInputPictures;
65
66 public:
71 QDateTime getSnapshotDate();
72 private:
73 Memento(std::vector<uint> state);
74 std::vector<uint> getState();
75
76 std::vector<uint> m_state;
77 QDateTime m_dateTime;
78 };
79
85 explicit ModelInputPictures(QString inputPath);
89 explicit ModelInputPictures();
90
97 void addKeyframe(unsigned int index);
104 bool isKeyframe(unsigned int index);
110 void updateMIP(const std::vector<unsigned int> &keyframes);
116 void removeKeyframe(unsigned int index);
123 const cv::Mat* getPic(unsigned int index, Reader::PictureProcessingFlags flags = Reader::APPLY_NONE);
131 unsigned int getKeyframeCount(bool inBound);
137 unsigned int getPicCount();
145 std::vector<unsigned int> getAllKeyframes(bool inBound);
146
151 std::shared_ptr<ReaderParams> getReaderParams();
159 unsigned int getNextKeyframe(unsigned int index, unsigned int stepsize);
167 unsigned int getPreviousKeyframe(unsigned int index, unsigned int stepsize);
173 QString getPath();
179 Reader *getReader();
186 // ISerializable interface
192 QVariant toText() override;
198 void fromText(QVariant data) override;
204 QPoint getBoundaries();
210 void setBoundaries(QPoint boundaries);
216 int loadMetaData(QStringList paths);
221 int loadMetaDataImages();
222 Memento *save();
223 void restore(Memento *m);
224
225 void setAltitude(double altitude);
226 double getAltitude();
227
228
229
230signals:
236
237
238private:
239 Reader* m_reader = nullptr;
240 std::vector<unsigned int> m_keyframes;
241 QString m_inputPath;
242 cv::Mat m_currentMat;
243 QPoint m_boundaries;
244 MetaDataManager* m_metaDataManager = nullptr;
245 std::shared_ptr<ReaderParams> m_readerParams;
246 double m_altitude;
247
248 std::vector<unsigned int> splitString(QString string);
249};
250
251#endif // MODELINPUTPICTURES_H
The ConcurrentReader class is a wrapper for a Reader object. The ConcurrentReader can be moved to a s...
Definition concurrentreader.h:28
The ISerializable class ensures that inherit classes can be transformed to and from text.
Definition ISerializable.h:20
Definition metadatamanager.h:25
The Memento class is used to store and restore the keyframe list of mip for undo and redo.
Definition modelinputpictures.h:63
QDateTime getSnapshotDate()
getSnapshotDate returns the QDateTime object with the exact creation time and date of the memento
Definition modelinputpictures.cpp:412
The ModelInputPictures class is responsible for saving all the Data regarding the input....
Definition modelinputpictures.h:46
Reader * getReader()
Returns the current Reader as a DelayedCopyReader.
Definition modelinputpictures.cpp:182
int loadMetaData(QStringList paths)
loadMetaData Loads the given meta data for the imported Video
Definition modelinputpictures.cpp:315
QPoint getBoundaries()
Returns the current boundaries.
Definition modelinputpictures.cpp:304
void fromText(QVariant data) override
Reades its members from the given QVariant.
Definition modelinputpictures.cpp:246
void updateMIP(const std::vector< unsigned int > &keyframes)
Updates the indices of all keyframes.
Definition modelinputpictures.cpp:62
void setBoundaries(QPoint boundaries)
Set the current boundaries.
Definition modelinputpictures.cpp:309
ConcurrentReader * createConcurrentReader()
createConcurrentReader creates an object from the class ConcurrentReader which can be used to access ...
Definition modelinputpictures.cpp:187
unsigned int getKeyframeCount(bool inBound)
Returns the number of keyframes.
Definition modelinputpictures.cpp:138
void sig_mipChanged()
Signal, which is emitted, when the keyframe vector changes.
int loadMetaDataImages()
loadMetaDataImages Tries to extract meta data from the imported images
Definition modelinputpictures.cpp:324
const cv::Mat * getPic(unsigned int index, Reader::PictureProcessingFlags flags=Reader::APPLY_NONE)
Returns the frame with the given index.
Definition modelinputpictures.cpp:132
unsigned int getNextKeyframe(unsigned int index, unsigned int stepsize)
Returns the stepsize-next keyframe to a given index.
Definition modelinputpictures.cpp:149
unsigned int getPreviousKeyframe(unsigned int index, unsigned int stepsize)
Returns the stepsize-next keyframe to a given index.
Definition modelinputpictures.cpp:163
ModelInputPictures()
ModelInputPictures Constructor, which creates an empty class. toText can be used on this instance.
Definition modelinputpictures.cpp:47
void addKeyframe(unsigned int index)
Sets the frame with index as a keyframe.
Definition modelinputpictures.cpp:106
bool isKeyframe(unsigned int index)
Checks if the indexed frame is a keyframe.
Definition modelinputpictures.cpp:57
unsigned int getPicCount()
Returns the number of frames.
Definition modelinputpictures.cpp:142
void removeKeyframe(unsigned int index)
Removes the keyframe with the given index.
Definition modelinputpictures.cpp:119
QString getPath()
Returns the input Path.
Definition modelinputpictures.cpp:177
std::shared_ptr< ReaderParams > getReaderParams()
getReaderParams returns the parameters (working resolution, crop, etc.) used by the readers.
Definition modelinputpictures.cpp:394
std::vector< unsigned int > getAllKeyframes(bool inBound)
Returns the index vector containing the keyframes.
Definition modelinputpictures.cpp:363
QVariant toText() override
Saves this class to a QVariant.
Definition modelinputpictures.cpp:193
The Reader interface defines functions which are used for reading and parsing the import.
Definition reader.h:23