20#ifndef IMAGEBUFFER_HPP
21#define IMAGEBUFFER_HPP
81 bool LoadFile(
const std::string& file_name,
const int position = 0);
91 template <
typename TPOINTER>
92 bool LoadPointer(TPOINTER* new_image_data,
int nx,
int ny);
102 bool LoadFilePlane(
const std::string& file_name,
const int position = 0,
103 const int plane = 0);
244 int*
const is_rejected);
277 double*
const value)
const;
287 const double y)
const;
329 const std::shared_ptr<DdtEncDec> enc_dec);
356 bool LoadFileDataVector();
364 bool LoadFileDataImage(
const int plane_number);
370 bool LoadImageExtensionsAsOne();
382 bool LoadPropertyList();
384 bool LoadWCSFromMetadata(
const std::shared_ptr<DdtEncDecImage2D> enc_dec_2d);
386 bool LoadWCSFromMetadata(
const std::shared_ptr<DdtEncDecImage3D> enc_dec_3d);
388 bool LoadWCSFromMetadata(
const std::shared_ptr<DdtEncDecBinaryxD> enc_dec_xd);
390 bool AssignPropListAndWcs(cpl_propertylist*
const prop_list);
395 boost::signals2::connection connect(
const SignalT::slot_type& event_listener);
400 void DataAvailable();
409 void CheckByteOrder(
const int topic_id,
ddt::DataSample*
const data_sample,
410 const std::vector<uint8_t> tmp_data);
425 const int bytes_per_pixel,
426 const uint32_t data_type)
const;
459 const std::string config_map_name,
460 const std::string dimension,
const uint32_t data_type);
466 void DeleteCplImage(cpl_image**
const image,
const bool only_unwrap)
const;
476 const cpl_image*
const config_map,
477 const uint32_t data_type,
const int data_dim);
485 std::list<std::string> get_TextInformationForValue(
const double value)
const;
494 void CreateAndInitNewImage(
const uint32_t complete_pixels_x,
495 const uint32_t complete_pixels_y,
496 const uint32_t data_type);
507 cpl_image* CreateNewImageFromDataSample(
ddt::DataSample*
const data_sample,
508 const int bytes_per_pixel,
509 const int number_pixels_x,
510 const int number_pixels_y,
511 const uint32_t data_type,
512 bool*
const only_unwrap);
519 cpl_image* CreateNewImageFromLastImage(
const int number_pixels_x,
520 const int number_pixels_y);
529 void CopySegmentToImage(
const cpl_image*
const tmp_image,
530 const uint32_t first_pixel_x,
531 const uint32_t first_pixel_y);
542 void FreeAndCreateNew(
const uint32_t complete_pixels_x,
543 const uint32_t complete_pixels_y,
544 const uint32_t data_type,
const uint32_t image_id,
545 const bool complete_flag);
547 void LogMetaDataBase(
const std::shared_ptr<DdtEncDec> enc_dec);
552 void LogMetaDataImage2D(
const std::shared_ptr<DdtEncDecImage2D> enc_dec_2d);
557 void LogMetaDataImage3D(
const std::shared_ptr<DdtEncDecImage3D> enc_dec_3d);
562 void LogMetaDataBinaryxD(
const std::shared_ptr<DdtEncDecBinaryxD> enc_dec_xd);
588 boost::signals2::connection connection;
599 cpl_image* internal_image[2];
606 cpl_vector* internal_vector;
611 cpl_table* internal_binary_table;
631 int number_planes[2];
641 int number_extensions[2];
658 std::list<std::string> config_maps;
663 cpl_image* actual_configuration_map;
668 std::string actual_configuration;
673 boost::property_tree::ptree* actual_information_map;
678 std::string actual_configuration_map_source;
683 std::string actual_information_map_source;
693 std::string last_timestamp;
709 bool first_segment_received;
714 bool new_image_cycle;
720 bool copy_last_segment;
725 uint32_t last_first_pixel_x;
730 uint32_t last_first_pixel_y;
735 cpl_propertylist* property_list[2];
740 std::shared_ptr<DdtEncDec> encdec_image_data;
Definition configurationMaps.hpp:39
Definition dataAcquisition.hpp:52
Definition dataFile.hpp:78
Definition ddtLogger.hpp:51
Definition imageBuffer.hpp:54
static int32_t BitsPerPixelFromDataType(const uint32_t data_type)
Definition imageBuffer.cpp:1688
cpl_apertures * get_CircularObjects(const double sigma)
Definition imageBuffer.cpp:1297
cpl_propertylist * get_PropertyList()
Definition imageBuffer.cpp:1292
int get_ImageWidth() const
Definition imageBuffer.cpp:1880
void AttachDataStream(const std::string data_stream_id)
Definition imageBuffer.cpp:1766
bool LoadFile(const std::string &file_name, const int position=0)
Definition imageBuffer.cpp:1016
bool LoadInformationMaps(const std::string information_map_source)
Definition imageBuffer.cpp:992
ddt::DdtLogger * logger
Definition imageBuffer.hpp:338
void set_logger(ddt::DdtLogger *const in_logger)
Definition imageBuffer.cpp:152
double get_PixelValue(const int x_image, const int y_image, int *const is_rejected)
Definition imageBuffer.cpp:1312
void set_CurrentPlane(const int plane)
Definition imageBuffer.cpp:1894
bool LoadConfigurationMaps(const std::string configuration_map_source)
Definition imageBuffer.cpp:977
FitsExtension * get_FitsExtensionInfo(const int extension_number)
Definition imageBuffer.cpp:1227
int get_NumberExtensions()
Definition imageBuffer.cpp:1897
SignalT * ImageDataAvailableSignal()
Definition imageBuffer.cpp:1761
int get_CurrentPlane() const
Definition imageBuffer.cpp:1891
ddt::DdtStatistics * get_DataStatistics()
Definition imageBuffer.cpp:1805
bool LoadImageExtensionsAsOne(const std::string &file_name)
Definition imageBuffer.cpp:1167
bool get_LastSegment() const
Definition imageBuffer.cpp:1905
std::shared_ptr< DdtEncDec > get_MetadataSample()
Definition imageBuffer.cpp:1871
void FreeResources()
Definition imageBuffer.cpp:922
bool LoadFilePlane(const std::string &file_name, const int position=0, const int plane=0)
Definition imageBuffer.cpp:1008
ImageBuffer()
Definition imageBuffer.cpp:79
bool get_ConfigurationMap_Value(const double x, const double y, double *const value) const
Definition imageBuffer.cpp:1328
bool LoadCPLImage(cpl_image *const image)
Definition imageBuffer.cpp:1236
cpl_wcs * get_Wcs()
Definition imageBuffer.cpp:1289
bool LoadPointer(TPOINTER *new_image_data, int nx, int ny)
Definition imageBuffer.cpp:1096
int get_NumberAxis() const
Definition imageBuffer.cpp:1902
static void AddWCSItemsToPropList(cpl_propertylist *const prop_list, const std::shared_ptr< DdtEncDec > enc_dec)
Definition imageBuffer.cpp:1658
std::string LastTimestampFromBuffer() const
Definition imageBuffer.cpp:488
int get_NumberPlanes() const
Definition imageBuffer.cpp:1886
virtual ~ImageBuffer()
Definition imageBuffer.cpp:81
bool LoadActualConfigurationMap(const std::string configuration_map_name)
Definition imageBuffer.cpp:953
std::vector< int > get_invalid_image_hdus() const
Definition imageBuffer.cpp:1409
cpl_image * get_Image()
Definition imageBuffer.cpp:1874
FitsExtension get_PrimaryHDUInfo() const
Definition imageBuffer.cpp:1231
cpl_table * get_BinaryTable()
Definition imageBuffer.cpp:1877
bool get_AttachedToStream() const
Definition imageBuffer.cpp:1800
std::list< std::string > get_TextInformation(const double x, const double y) const
Definition imageBuffer.cpp:1347
int get_ImageHeight() const
Definition imageBuffer.cpp:1883
void DetachDataStream(const std::string data_stream_id)
Definition imageBuffer.cpp:1795
bool get_FirstSegmentReceived() const
Definition imageBuffer.cpp:1908
void set_RetrieveStatsFlag(bool value)
Definition imageBuffer.cpp:1809
Configuration Maps class, offers an interface to configuration map access classes....
Data acquisition class, offers access to data stream acquisition functions. This file is part of the ...
Data file class, offers access to FITS file functions. This file is part of the DDT Image Handling Li...
DDT EncDecMultiDim. Class to encode / decode multi-dimensional array data samples....
DDT EncDecImage2D. Class to encode / decode 2-dimensional data samples containing image data....
DDT EncDecMultiLayer. Class to encode / decode multi-layer image data samples. Class to encode / deco...
Class to wrap the usage of log4cplus as logging utility. This file provides a wrapper class for the u...
boost::signals2::signal< void()> SignalT
Definition ddtMemoryAccessor.hpp:82
Image Color class, offers access to color map related functions. This file is part of the DDT Image H...
Image Handling class, offers access to coordinate conversion functions. This file is part of the DDT ...
Image error handling function declaration. This file is part of the DDT Image Handling Library and pr...
Image IO function declaration. This file is part of the DDT Image Handling Library and provides funct...
Image processing function declaration. This file is part of the DDT Image Handling Library and provid...
Image analysis and statistic function declaration. This file is part of the DDT Image Handling Librar...
Definition ddtClient.hpp:39
Definition ddtMemoryAccessor.hpp:184
Definition ddtStatistics.hpp:27
Definition dataFile.hpp:39