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
5 // legal conditions apply.
6 //
7 // @file biasBuffer.hpp
8 // @brief BIAS Buffer class, handles bias image usage.
9 //
10 // This file is part of the DDT Image Handling Library and
11 // provides a class that handles the bias image usage.
12 //
13 // @author Christoph Bortlisz, CGI
14 // @since 2021/02/11
15 //
16 
17 #ifndef BIASBUFFER_HPP
18 #define BIASBUFFER_HPP
19 
20 #include <algorithm>
21 #include <cctype>
22 
23 #include <sys/stat.h>
24 #include "boost/filesystem.hpp"
25 
26 #include <cpl.h>
27 #undef I
28 #undef arg
29 
31 #include "ddt/dataAcquisition.hpp"
32 #include "ddt/dataFile.hpp"
34 #include "ddt/ddtEncDecImage2D.hpp"
35 #include "ddt/imageColor.hpp"
36 #include "ddt/imageCoords.hpp"
37 #include "ddt/imageError.hpp"
38 #include "ddt/imageIO.hpp"
39 #include "ddt/imageProc.hpp"
40 #include "ddt/imageStats.hpp"
41 
42 #include "ddt/ddtLogger.hpp"
43 
44 namespace ddt {
45 
53 class BiasBuffer {
54  public:
59  BiasBuffer();
60 
61  BiasBuffer(const int max_size = 5);
62 
66  virtual ~BiasBuffer();
67 
72  void set_logger(ddt::DdtLogger* const in_logger);
73 
83  bool LoadBiasFileInSlot(const std::string& file_name, const int slot = 0);
84 
92  int LoadBiasFileInFreeSlot(const std::string& file_name);
93 
103  bool StoreCPLAsBiasImageInSlot(const cpl_image* image, std::string slot_name,
104  const int slot = 0);
105 
115  int StoreCPLAsBiasImageInFreeSlot(const cpl_image* const image,
116  const std::string slot_name);
117 
121  void ClearAll();
122 
127  void ClearSelected(const int slot);
128 
135  cpl_image* get_Image(const int slot);
136 
144  std::string get_SlotName(const int slot);
145 
153  bool SubtractBiasImage(cpl_image* const source_image, const int slot = 0);
154 
155  protected:
160 
161  private:
165  void initialize();
166 
172  bool loadFileData(const int slot);
173 
179  bool loadFileDataImage(const int slot);
180 
185  void deleteCplImage(cpl_image** const image) const;
186 
190  ddt::DataFile* data_file;
191 
195  std::vector<cpl_image*> bias_image;
196 
200  std::vector<std::string> bias_image_name;
201 
205  int max_bias_images;
206 };
207 
208 } // namespace ddt
209 
210 #endif /* BIASBUFFER_HPP */
imageProc.hpp
ddt::BiasBuffer::get_Image
cpl_image * get_Image(const int slot)
Definition: biasBuffer.cpp:160
ddt::BiasBuffer::ClearSelected
void ClearSelected(const int slot)
Definition: biasBuffer.cpp:281
ddt::DdtLogger
Definition: ddtLogger.hpp:48
ddt
Definition: ddtClient.hpp:36
ddt::BiasBuffer::StoreCPLAsBiasImageInFreeSlot
int StoreCPLAsBiasImageInFreeSlot(const cpl_image *const image, const std::string slot_name)
Definition: biasBuffer.cpp:246
ddt::BiasBuffer::~BiasBuffer
virtual ~BiasBuffer()
Definition: biasBuffer.cpp:40
imageIO.hpp
ddt::BiasBuffer::StoreCPLAsBiasImageInSlot
bool StoreCPLAsBiasImageInSlot(const cpl_image *image, std::string slot_name, const int slot=0)
Definition: biasBuffer.cpp:194
imageColor.hpp
ddt::BiasBuffer::set_logger
void set_logger(ddt::DdtLogger *const in_logger)
Definition: biasBuffer.cpp:52
ddtEncDecImage2D.hpp
imageError.hpp
ddtEncDecBinaryxD.hpp
ddt::BiasBuffer
Definition: biasBuffer.hpp:53
ddt::BiasBuffer::ClearAll
void ClearAll()
Definition: biasBuffer.cpp:272
dataAcquisition.hpp
ddt::DataFile
Definition: dataFile.hpp:71
imageStats.hpp
ddt::BiasBuffer::BiasBuffer
BiasBuffer()
Definition: biasBuffer.cpp:30
ddt::BiasBuffer::get_SlotName
std::string get_SlotName(const int slot)
Definition: biasBuffer.cpp:171
configurationMaps.hpp
ddtLogger.hpp
ddt::BiasBuffer::LoadBiasFileInFreeSlot
int LoadBiasFileInFreeSlot(const std::string &file_name)
Definition: biasBuffer.cpp:94
dataFile.hpp
ddt::BiasBuffer::LoadBiasFileInSlot
bool LoadBiasFileInSlot(const std::string &file_name, const int slot=0)
Definition: biasBuffer.cpp:67
ddt::BiasBuffer::logger
ddt::DdtLogger * logger
Definition: biasBuffer.hpp:159
imageCoords.hpp
ddt::BiasBuffer::SubtractBiasImage
bool SubtractBiasImage(cpl_image *const source_image, const int slot=0)
Definition: biasBuffer.cpp:182