SourceXtractorPlusPlus  0.12
Please provide a description of the project.
CoreThresholdPartitionTask.h
Go to the documentation of this file.
1 
24 #ifndef _SEIMPLEMENTATION_PLUGIN_CORETHRESHOLDTASK_H_
25 #define _SEIMPLEMENTATION_PLUGIN_CORETHRESHOLDTASK_H_
26 
27 #include "NCorePixel.h"
29 
33 
35 
36 namespace SourceXtractor {
37 
39 
40 public:
41  CoreThresholdPartitionTask(double snr_level): m_snr_level(snr_level) {};
42 
43  virtual ~CoreThresholdPartitionTask() = default;
44 
45  virtual void computeProperties(SourceInterface& source) const {
46  long int n_snr_level=0;
47 
48  // get the detection frame and the SNR image
49  const auto& detection_frame_images = source.getProperty<DetectionFrameImages>();
50  const auto& snr_image = detection_frame_images.getLockedImage(LayerSignalToNoiseMap);
51 
52  // go over all pixels
53  for (auto pixel_coord : source.getProperty<PixelCoordinateList>().getCoordinateList()) {
54  // enhance the counter if the SNR is above the level
55  if (snr_image->getValue(pixel_coord.m_x, pixel_coord.m_y) >= m_snr_level)
56  n_snr_level += 1;
57  }
58 
59  // set the property
60  source.setProperty<NCorePixel>(n_snr_level);
61 };
62 
63 private:
64  double m_snr_level;
65 
66 }; // End of CoreThresholdTask class
67 } // namespace SExtractor
68 
69 #endif /* _SEIMPLEMENTATION_PLUGIN_SNRLEVELSOURCETASK_H_ */
70 
71 
72 
std::shared_ptr< Image< SeFloat > > getLockedImage(FrameImageLayer layer) const
A Task that acts on a Source to compute one or more properties.
Definition: SourceTask.h:36
const PropertyType & getProperty(unsigned int index=0) const
Convenience template method to call getProperty() with a more user-friendly syntax.
virtual void computeProperties(SourceInterface &source) const
Computes one or more properties for the Source.
The SourceInterface is an abstract "source" that has properties attached to it.
const std::vector< PixelCoordinate > & getCoordinateList() const