PCL
pcl::PSFSignalEstimator Class Reference

Signal estimation based on PSF photometry. More...

#include <PSFSignalEstimator.h>

+ Inheritance diagram for pcl::PSFSignalEstimator:

Classes

struct  Estimates
 Structure to hold PSF flux and robust mean background estimates. More...
 

Public Types

using psf_function = PSFEstimator::psf_function
 
- Public Types inherited from pcl::PSFEstimator
using psf_function = StarDetector::psf_function
 

Public Member Functions

 PSFSignalEstimator ()
 
 PSFSignalEstimator (const PSFSignalEstimator &)=default
 
 ~PSFSignalEstimator () override
 
int BackgroundModelScale () const
 
Estimates EstimateSignal (const ImageVariant &image) const
 
Estimates operator() (const ImageVariant &image) const
 
PSFSignalEstimatoroperator= (const PSFSignalEstimator &)=default
 
void SetBackgroundModelScale (int scale)
 
- Public Member Functions inherited from pcl::PSFEstimator
 PSFEstimator ()=default
 
 PSFEstimator (const PSFEstimator &)=default
 
 ~PSFEstimator () override
 
StarDetectorDetector ()
 
const StarDetectorDetector () const
 
void DisablePSFWeighting (bool disable=true)
 
void DisableRelativeSaturation (bool disable=true)
 
void EnablePSFWeighting (bool enable=true)
 
void EnableRelativeSaturation (bool enable=true)
 
Array< PSFDataFitStars (const ImageVariant &image) const
 
float GrowthFactorForFluxMeasurement () const
 
bool IsPSFWeightingEnabled () const
 
bool IsRelativeSaturationEnabled () const
 
int MaxStars () const
 
PSFEstimatoroperator= (const PSFEstimator &)=default
 
float PSFCentroidTolerance () const
 
psf_function PSFType () const
 
float RejectionLimit () const
 
float SaturationThreshold () const
 
void SetGrowthFactorForFluxMeasurement (float k)
 
void SetMaxStars (int n)
 
void SetPSFCentroidTolerance (float t)
 
void SetPSFType (psf_function type)
 
void SetRejectionLimit (float r)
 
void SetSaturationThreshold (float t)
 
- Public Member Functions inherited from pcl::ParallelProcess
 ParallelProcess ()=default
 
 ParallelProcess (const ParallelProcess &)=default
 
virtual ~ParallelProcess ()
 
void DisableParallelProcessing (bool disable=true) noexcept
 
void EnableParallelProcessing (bool enable=true, int maxProcessors=0) noexcept
 
bool IsParallelProcessingEnabled () const noexcept
 
int MaxProcessors () const noexcept
 
ParallelProcessoperator= (const ParallelProcess &)=default
 
void SetMaxProcessors (int maxProcessors) noexcept
 
void Swap (ParallelProcess &process) noexcept
 

Static Public Member Functions

static Array< float > LocalBackgroundResidual (const ImageVariant &image, int scale=256, int maxThreads=0)
 
template<class T >
static double NStar (T &R)
 
template<class T >
static double NStar_MAD (const T &R)
 
template<class T >
static double NStar_Sn (T &R)
 
static double PSFSignalWeight (const Estimates &E, double sigmaN=0)
 
static double PSFSNR (const Estimates &E, double sigmaN=0)
 

Detailed Description

Member Typedef Documentation

◆ psf_function

using pcl::PSFSignalEstimator::psf_function = PSFEstimator::psf_function

Represents a point spread function type.

Definition at line 78 of file PSFSignalEstimator.h.

Constructor & Destructor Documentation

◆ PSFSignalEstimator() [1/2]

pcl::PSFSignalEstimator::PSFSignalEstimator ( )
inline

Default constructor.

Definition at line 118 of file PSFSignalEstimator.h.

◆ PSFSignalEstimator() [2/2]

pcl::PSFSignalEstimator::PSFSignalEstimator ( const PSFSignalEstimator )
default

Copy constructor.

◆ ~PSFSignalEstimator()

pcl::PSFSignalEstimator::~PSFSignalEstimator ( )
inlineoverride

Destroys a PSFSignalEstimator object.

Definition at line 134 of file PSFSignalEstimator.h.

Member Function Documentation

◆ BackgroundModelScale()

int pcl::PSFSignalEstimator::BackgroundModelScale ( ) const
inline

Returns the scale for local background model generation in pixels.

The implemented algorithm uses nonlinear multiscale transforms to generate a model of the large-scale background component of the image. This is necessary to calculate robust estimates of the mean background level and the standard deviation of the noise, M* and N* respectively.

This parameter defines the dimensional scale in pixels for isolation of large-scale image structures. The current implementation supports the following scale parameter values in pixels: 1024, 768, 512, 384, 256, 192, 128, 64 and 32. The default scale is 256 pixels.

Definition at line 156 of file PSFSignalEstimator.h.

◆ EstimateSignal()

Estimates pcl::PSFSignalEstimator::EstimateSignal ( const ImageVariant image) const

Evaluates the total and mean PSF flux and square flux, along with the M* and N* estimates of mean background level and noise standard deviation, for the selected channel of the specified image. Returns the estimates as a new PSFSignalEstimator::Estimates object.

Note
This function is thread-safe.

◆ LocalBackgroundResidual()

static Array<float> pcl::PSFSignalEstimator::LocalBackgroundResidual ( const ImageVariant image,
int  scale = 256,
int  maxThreads = 0 
)
static

Extracts the set of residual pixels from a large-scale local background model.

Parameters
imageThe target image, from which the set of residual pixels will be evaluated and extracted. The task will work exclusively on the selected channel of the image, ignoring region selections.
scaleThe dimensional scale in pixels. This is the scale of the generated local background model used for detection of non-significant and residual pixels. The current implementation supports the following scales for large-scale local background modeling: 512, 384, 256, 192, 128, 64 and 32 pixels. The default scale is 256 pixels.
maxThreadsIf specified, the task will use at most this number of parallel execution threads. Otherwise, or if a value ≤ 0 is specified, the number of threads will be set according to current platform settings.

The mean (or median) and standard deviation of the returned residual are the M* and N* robust estimators, respectively. M* estimates the mean background level, and N* the standard deviation of the noise.

◆ NStar()

template<class T >
static double pcl::PSFSignalEstimator::NStar ( T &  R)
inlinestatic

Returns the normalized N* robust estimator of the standard deviation of the noise for the specified local background residual R. This function computes the normalized N* variant with the Sn scale estimator of Rousseeuw and Croux. It is equivalent to NStar_Sn( R ).

Note
This is a destructive algorithm: it may alter the initial order of items in the specified R container.

Definition at line 274 of file PSFSignalEstimator.h.

◆ NStar_MAD()

template<class T >
static double pcl::PSFSignalEstimator::NStar_MAD ( const T &  R)
inlinestatic

Returns the normalized N* robust estimator of the standard deviation of the noise for the specified local background residual R. This function computes the normalized N* variant with the MAD scale estimator:

N* = 2.48308 * MAD( R )

The type T must be a direct container with PCL random access container semantics, such as Vector or Array. You can use the output of LocalBackgroundResidual() directly to call this function.

Definition at line 238 of file PSFSignalEstimator.h.

◆ NStar_Sn()

template<class T >
static double pcl::PSFSignalEstimator::NStar_Sn ( T &  R)
inlinestatic

Returns the normalized N* robust estimator of the standard deviation of the noise for the specified local background residual R. This function computes the normalized N* variant with the Sn scale estimator of Rousseeuw and Croux:

N* = 2.03636 * Sn( R )

The type T must be a direct container with PCL random access container semantics, such as Vector or Array. You can use the output of LocalBackgroundResidual() directly to call this function.

Note
This is a destructive algorithm: it may alter the initial order of items in the specified R container.

Definition at line 259 of file PSFSignalEstimator.h.

◆ operator()()

Estimates pcl::PSFSignalEstimator::operator() ( const ImageVariant image) const
inline

Evaluates the total and mean PSF flux and square flux, along with the M* and N* estimates of mean background level and noise standard deviation, for the selected channel of the specified image. Returns the estimates as a new PSFSignalEstimator::Estimates object.

This operator is equivalent to the EstimateSignal( const ImageVariant& ) member function.

Note
This function is thread-safe.

Definition at line 194 of file PSFSignalEstimator.h.

◆ operator=()

PSFSignalEstimator& pcl::PSFSignalEstimator::operator= ( const PSFSignalEstimator )
default

Copy assignment operator. Returns a reference to this object.

◆ PSFSignalWeight()

static double pcl::PSFSignalEstimator::PSFSignalWeight ( const Estimates E,
double  sigmaN = 0 
)
inlinestatic

The PSF Signal Weight (PSFSW) image quality estimator.

Parameters
EPSF flux and robust mean background and noise estimates. The estimates held by this object should be the result of a previous call to the EstimateSignal() member function, or be assigned with values retrieved from the appropriate image metadata items.
sigmaNEstimate of the standard deviation of the noise. If no value is specified for this parameter, or if a value ≤ 0 is specified, the N* robust noise estimate held by the specified E structure will be used.

Definition at line 293 of file PSFSignalEstimator.h.

◆ PSFSNR()

static double pcl::PSFSignalEstimator::PSFSNR ( const Estimates E,
double  sigmaN = 0 
)
inlinestatic

The PSF Signal to Noise Ratio (PSFSNR) estimator.

Parameters
EPSF flux and robust mean background and noise estimates. The estimates held by this object should be the result of a previous call to the EstimateSignal() member function, or be assigned with values retrieved from the appropriate image metadata items.
sigmaNEstimate of the standard deviation of the noise. If no value is specified for this parameter, or if a value ≤ 0 is specified, the N* robust noise estimate held by the specified E structure will be used.

Definition at line 314 of file PSFSignalEstimator.h.

◆ SetBackgroundModelScale()

void pcl::PSFSignalEstimator::SetBackgroundModelScale ( int  scale)
inline

Sets the scale for local background model generation in pixels.

See the BackgroundModelScale() member function for a description of this parameter.

Definition at line 167 of file PSFSignalEstimator.h.

References pcl::Range().


The documentation for this class was generated from the following file: