iVS3D v2.0.0
Loading...
Searching...
No Matches
imagereader.h
1#ifndef IMAGEREADER_H
2#define IMAGEREADER_H
3
4#include "readerfactory.h"
5#include "reader.h"
6#include "sequentialreaderimpl.h"
7#include "readerparams.h"
8
9#include <QObject>
10#include <opencv2/core.hpp>
11
12
13#include <opencv2/core/utils/filesystem.hpp>
14#include <opencv2/imgcodecs.hpp>
15#include <opencv2/imgproc.hpp>
16
17#include <QDir>
18#include <QFileInfo>
19#include <QCollator>
20
32class ImageReader : public Reader
33
34{
35public:
40 explicit ImageReader(QString path, std::shared_ptr<ReaderParams> readerParams);
41
42 ~ImageReader() override {}
50 cv::Mat getPic(unsigned int index, PictureProcessingFlags flags = APPLY_ALL) override;
55 unsigned int getPicCount() override;
60 double getFPS() override;
65 double getVideoDuration() override;
70 QString getInputPath() override;
75 bool isDir() override;
80 std::vector<std::string> getFileVector() override;
85 ImageReader *copy(std::shared_ptr<ReaderParams> params) override;
90 void addMetaData(MetaData* md) override;
95 MetaData* getMetaData() override;
100 bool isValid() override;
101
102 SequentialReader *createSequentialReader(std::vector<uint> indices, PictureProcessingFlags flags = APPLY_ALL) override;
103
104private:
105 ImageReader();
106 std::vector<std::string> m_filePaths;
107 unsigned int m_numImages = 0;
108 std::string m_folderPath;
109 bool m_isValid = false;
110
111 MetaData* m_md = nullptr;
112 std::shared_ptr<ReaderParams> m_readerParams;
113};
114
115REGISTER_READER("ImageReader", ImageReader)
116#endif // IMAGEREADER_H
The ImageReader class provides input metadata aswell as on demand image reading/loading.
Definition imagereader.h:34
double getVideoDuration() override
getVideoDurationmethod from interface Reader, that doesn't make sense for this class
Definition imagereader.cpp:81
QString getInputPath() override
getInputPath getter for initially given directory
Definition imagereader.cpp:86
bool isDir() override
isDir returns true, because the ImageReader works on a directory
Definition imagereader.cpp:91
bool isValid() override
isValid Retruns wether the reader is valid or not
Definition imagereader.cpp:123
double getFPS() override
getFPS method from interface Reader, that doesn't make sense for this class
Definition imagereader.cpp:76
ImageReader * copy(std::shared_ptr< ReaderParams > params) override
copy creates a new instance of ImageReader that is a copy of itself
Definition imagereader.cpp:101
unsigned int getPicCount() override
getPicCount returns count of images in input
Definition imagereader.cpp:71
MetaData * getMetaData() override
getMetaData Returns the currently saved MetaData
Definition imagereader.cpp:118
void addMetaData(MetaData *md) override
addMetaData Used to add MetaData to the reader
Definition imagereader.cpp:113
std::vector< std::string > getFileVector() override
getFileVector getter for entire image path list
Definition imagereader.cpp:96
cv::Mat getPic(unsigned int index, PictureProcessingFlags flags=APPLY_ALL) override
Returns the frame to a given index.
Definition imagereader.cpp:54
Interface to give plugins access to all parsed and loaded meta data.
Definition metadata.h:20
The Reader interface defines functions which are used for reading and parsing the import.
Definition reader.h:23
Definition sequentialreader.h:10