ddt  0.1
biasBuffer.hpp
Go to the documentation of this file.
1 // @copyright
2 // (c) Copyright ESO 2020
3 // All Rights Reserved
4 // ESO (eso.org) is an Intergovernmental Organization, and therefore special legal conditions apply.
5 //
6 // @file biasBuffer.hpp
7 // @brief BIAS Buffer class, handles bias image usage.
8 //
9 // This file is part of the DDT Image Handling Library and
10 // provides a class that handles the bias image usage.
11 //
12 // @author Christoph Bortlisz, CGI
13 // @since 2021/02/11
14 //
15 
16 #ifndef BIASBUFFER_HPP
17 #define BIASBUFFER_HPP
18 
19 #include <algorithm>
20 #include <cctype>
21 
22 #include <sys/stat.h>
23 #include "boost/filesystem.hpp"
24 
25 #include <cpl.h>
26 #undef I
27 #undef arg
28 
29 #include "ddt/imageError.hpp"
30 #include "ddt/imageIO.hpp"
31 #include "ddt/imageProc.hpp"
32 #include "ddt/imageStats.hpp"
33 #include "ddt/imageCoords.hpp"
34 #include "ddt/imageColor.hpp"
35 #include "ddt/dataAcquisition.hpp"
36 #include "ddt/dataFile.hpp"
39 #include "ddt/ddtEncDecBiDim.hpp"
40 
41 #include "ddt/ddtLogger.hpp"
42 
43 namespace ddt {
44 
51 class BiasBuffer {
52 public:
53 
58  BiasBuffer();
59 
60  BiasBuffer(const int max_size=5);
61 
65  virtual ~BiasBuffer();
66 
72 
80  bool LoadBiasFileInSlot(const std::string& file_name, const int slot=0);
81 
88  int LoadBiasFileInFreeSlot(const std::string& file_name);
89 
97  bool StoreCPLAsBiasImageInSlot(const cpl_image* image, std::string slot_name, const int slot=0);
98 
105  int StoreCPLAsBiasImageInFreeSlot(const cpl_image* image, std::string slot_name);
106 
110  void ClearAll();
111 
116  void ClearSelected(const int slot);
117 
123  cpl_image * get_Image(const int slot);
124 
130  std::string get_SlotName(const int slot);
131 
132 
139  bool SubtractBiasImage(cpl_image* source_image, const int slot=0);
140 
141 protected:
142 
147 
148 private:
152  void initialize();
153 
159  bool loadFileData(const int slot);
160 
166  bool loadFileDataImage(const int slot);
167 
172  void deleteCplImage(cpl_image** image);
173 
177  ddt::DataFile* data_file;
178 
182  std::vector<cpl_image*> bias_image;
183 
187  std::vector<std::string> bias_image_name;
188 
192  int max_bias_images;
193 
194 };
195 
196 } // namespace ddt
197 
198 #endif /* BIASBUFFER_HPP */
imageProc.hpp
ddt::BiasBuffer::get_Image
cpl_image * get_Image(const int slot)
Definition: biasBuffer.cpp:170
ddt::BiasBuffer::ClearSelected
void ClearSelected(const int slot)
Definition: biasBuffer.cpp:299
ddt::BiasBuffer::StoreCPLAsBiasImageInFreeSlot
int StoreCPLAsBiasImageInFreeSlot(const cpl_image *image, std::string slot_name)
Definition: biasBuffer.cpp:259
ddt::DdtLogger
Definition: ddtLogger.hpp:71
ddt
Definition: ddtClient.hpp:36
ddt::BiasBuffer::~BiasBuffer
virtual ~BiasBuffer()
Definition: biasBuffer.cpp:43
imageIO.hpp
ddt::BiasBuffer::StoreCPLAsBiasImageInSlot
bool StoreCPLAsBiasImageInSlot(const cpl_image *image, std::string slot_name, const int slot=0)
Definition: biasBuffer.cpp:203
imageColor.hpp
ddtEncDecBiDim.hpp
imageError.hpp
ddt::BiasBuffer::SubtractBiasImage
bool SubtractBiasImage(cpl_image *source_image, const int slot=0)
Definition: biasBuffer.cpp:192
ddt::BiasBuffer
Definition: biasBuffer.hpp:51
ddt::BiasBuffer::set_logger
void set_logger(ddt::DdtLogger *logger)
Definition: biasBuffer.cpp:56
ddt::BiasBuffer::ClearAll
void ClearAll()
Definition: biasBuffer.cpp:291
dataAcquisition.hpp
ddt::DataFile
Definition: dataFile.hpp:76
imageStats.hpp
ddt::BiasBuffer::BiasBuffer
BiasBuffer()
Definition: biasBuffer.cpp:29
ddt::BiasBuffer::get_SlotName
std::string get_SlotName(const int slot)
Definition: biasBuffer.cpp:181
configurationMaps.hpp
ddtLogger.hpp
ddtEncDecMultiDim.hpp
ddt::BiasBuffer::LoadBiasFileInFreeSlot
int LoadBiasFileInFreeSlot(const std::string &file_name)
Definition: biasBuffer.cpp:102
dataFile.hpp
ddt::BiasBuffer::LoadBiasFileInSlot
bool LoadBiasFileInSlot(const std::string &file_name, const int slot=0)
Definition: biasBuffer.cpp:71
ddt::BiasBuffer::logger
ddt::DdtLogger * logger
Definition: biasBuffer.hpp:146
imageCoords.hpp