SourceXtractorPlusPlus  0.10
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"
30 
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 {
47 
48  long int n_snr_level=0;
49 
50  // get the detection frame and the SNR image
51  const auto& snr_image = source.getProperty<DetectionFrame>().getFrame()->getSnrImage();
52 
53  // go over all pixels
54  for (auto pixel_coord : source.getProperty<PixelCoordinateList>().getCoordinateList()) {
55  // enhance the counter if the SNR is above the level
56  if (snr_image->getValue(pixel_coord.m_x, pixel_coord.m_y) >= m_snr_level)
57  n_snr_level += 1;
58  }
59 
60  // set the property
61  source.setProperty<NCorePixel>(n_snr_level);
62 };
63 
64 private:
65  double m_snr_level;
66 
67 }; // End of CoreThresholdTask class
68 } // namespace SExtractor
69 
70 #endif /* _SEIMPLEMENTATION_PLUGIN_SNRLEVELSOURCETASK_H_ */
71 
72 
73 
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.
T lock(T... args)
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