PNGRecordingStrategy.h
Go to the documentation of this file.
1 /*
2  * This file is part of ArmarX.
3  *
4  * ArmarX is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation.
7  *
8  * ArmarX is distributed in the hope that it will be useful, but
9  * WITHOUT ANY WARRANTY; without even the implied warranty of
10  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  * GNU General Public License for more details.
12  *
13  * You should have received a copy of the GNU General Public License
14  * along with this program. If not, see <http://www.gnu.org/licenses/>.
15  *
16  * @package visionx::imrec
17  * @author Christian R. G. Dreher <christian.dreher@student.kit.edu>
18  * @date 2018
19  * @copyright http://www.gnu.org/licenses/gpl-2.0.txt
20  * GNU General Public License
21  */
22 
23 
24 #pragma once
25 
26 
27 // STD/STL
28 #include <string>
29 
30 // ArmarX
33 
34 
35 namespace visionx::imrec::strats
36 {
37 
38  /**
39  * Concrete strategy for a PNG image recording
40  */
43  {
44 
45  protected:
46 
47  unsigned int m_png_compression;
48 
49  public:
50 
52  PNGRecordingStrategy(const std::filesystem::path& filePath, const std::string& file_name, unsigned int png_compression = 9);
53  ~PNGRecordingStrategy() override;
54 
55  static void recordSnapshot(const cv::Mat& image, const std::filesystem::path& path);
56  static void recordSnapshot(const CByteImage& image, const std::filesystem::path& path);
57 
58  void startRecording() override;
59  void recordFrame(const cv::Mat& frame, std::chrono::microseconds timestamp) override;
60 
61  };
62 
63 }
AbstractSequencedRecordingStrategy.h
visionx::imrec::AbstractSequencedRecordingStrategy
An object of this class behaves likee a normal recording, but is in fact a sequence of images.
Definition: AbstractSequencedRecordingStrategy.h:41
visionx::imrec::strats::PNGRecordingStrategy::recordFrame
void recordFrame(const cv::Mat &frame, std::chrono::microseconds timestamp) override
Adds the given frame to the recording.
Definition: PNGRecordingStrategy.cpp:99
visionx::imrec::strats::PNGRecordingStrategy::m_png_compression
unsigned int m_png_compression
Definition: PNGRecordingStrategy.h:47
visionx::imrec::strats::PNGRecordingStrategy
Concrete strategy for a PNG image recording.
Definition: PNGRecordingStrategy.h:41
visionx::imrec::strats::PNGRecordingStrategy::recordSnapshot
static void recordSnapshot(const cv::Mat &image, const std::filesystem::path &path)
Definition: PNGRecordingStrategy.cpp:61
visionx::imrec::strats::PNGRecordingStrategy::PNGRecordingStrategy
PNGRecordingStrategy()
Definition: PNGRecordingStrategy.cpp:39
visionx::imrec::strats
Definition: ChunkedImageSequencePlaybackStrategy.h:38
visionx::imrec::strats::PNGRecordingStrategy::~PNGRecordingStrategy
~PNGRecordingStrategy() override
Definition: PNGRecordingStrategy.cpp:54
Logging.h
visionx::imrec::strats::PNGRecordingStrategy::startRecording
void startRecording() override
Starts the recording manually if constructed empty.
Definition: PNGRecordingStrategy.cpp:91