LSST Applications  21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
LSST Data Management Base Package
Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
lsst::afw::math::Background Class Referenceabstract

A virtual base class to evaluate image background levels. More...

#include <Background.h>

Inheritance diagram for lsst::afw::math::Background:
lsst::afw::math::BackgroundMI

Public Types

using InternalPixelT = float
 type used for any internal images, and returned by getApproximate More...
 

Public Member Functions

 Background (Background const &)=delete
 
 Background (Background &&)=delete
 
virtual ~Background ()=default
 dtor More...
 
Backgroundoperator= (Background const &)=delete
 
Backgroundoperator= (Background &&)=delete
 
virtual Backgroundoperator+= (float const delta)=0
 Add a constant level to a background. More...
 
virtual Backgroundoperator-= (float const delta)=0
 Subtract a constant level from a background. More...
 
template<typename PixelT >
std::shared_ptr< lsst::afw::image::Image< PixelT > > getImage (Interpolate::Style const interpStyle, UndersampleStyle const undersampleStyle=THROW_EXCEPTION) const
 Method to interpolate and return the background for entire image. More...
 
template<typename PixelT >
std::shared_ptr< lsst::afw::image::Image< PixelT > > getImage (std::string const &interpStyle, std::string const &undersampleStyle="THROW_EXCEPTION") const
 Method to interpolate and return the background for entire image. More...
 
template<typename PixelT >
std::shared_ptr< lsst::afw::image::Image< PixelT > > getImage (lsst::geom::Box2I const &bbox, Interpolate::Style const interpStyle, UndersampleStyle const undersampleStyle=THROW_EXCEPTION) const
 
template<typename PixelT >
std::shared_ptr< lsst::afw::image::Image< PixelT > > getImage (lsst::geom::Box2I const &bbox, std::string const &interpStyle, std::string const &undersampleStyle="THROW_EXCEPTION") const
 
template<typename PixelT >
std::shared_ptr< lsst::afw::image::Image< PixelT > > getImage () const
 Method to interpolate and return the background for entire image. More...
 
Interpolate::Style getAsUsedInterpStyle () const
 Return the Interpolate::Style that we actually used in the last call to getImage() More...
 
UndersampleStyle getAsUsedUndersampleStyle () const
 Return the UndersampleStyle that we actually used in the last call to getImage() More...
 
std::shared_ptr< math::Approximate< InternalPixelT > > getApproximate (ApproximateControl const &actrl, UndersampleStyle const undersampleStyle=THROW_EXCEPTION) const
 Method to return an approximation to the background. More...
 
lsst::geom::Box2I getImageBBox () const
 Return the input image's (PARENT) bounding box. More...
 
std::shared_ptr< BackgroundControlgetBackgroundControl ()
 
std::shared_ptr< BackgroundControl const > getBackgroundControl () const
 

Protected Member Functions

template<typename ImageT >
 Background (ImageT const &img, BackgroundControl const &bgCtrl)
 Constructor for Background. More...
 
 Background (lsst::geom::Box2I const imageBBox, int const nx, int const ny)
 Create a Background without any values in it. More...
 

Protected Attributes

lsst::geom::Box2I _imgBBox
 size and origin of input image More...
 
std::shared_ptr< BackgroundControl_bctrl
 control info set by user. More...
 
Interpolate::Style _asUsedInterpStyle
 the style we actually used More...
 
UndersampleStyle _asUsedUndersampleStyle
 the undersampleStyle we actually used More...
 
std::vector< double > _xcen
 x center pix coords of sub images More...
 
std::vector< double > _ycen
 y center ... More...
 
std::vector< int > _xorig
 x origin pix coords of sub images More...
 
std::vector< int > _yorig
 y origin ... More...
 
std::vector< int > _xsize
 x size of sub images More...
 
std::vector< int > _ysize
 y size ... More...
 

Detailed Description

A virtual base class to evaluate image background levels.

Definition at line 235 of file Background.h.

Member Typedef Documentation

◆ InternalPixelT

type used for any internal images, and returned by getApproximate

Definition at line 262 of file Background.h.

Constructor & Destructor Documentation

◆ Background() [1/4]

template<typename ImageT >
lsst::afw::math::Background::Background ( ImageT const &  img,
BackgroundControl const &  bgCtrl 
)
explicitprotected

Constructor for Background.

Estimate the statistical properties of the Image in a grid of cells; we'll later call getImage() to interpolate those values, creating an image the same size as the original

Parameters
imgImageT (or MaskedImage) whose properties we want
bgCtrlControl how the Background is estimated

Definition at line 44 of file Background.cc.

45  : _imgBBox(img.getBBox()),
46  _bctrl(new BackgroundControl(bgCtrl)),
49  _xcen(0),
50  _ycen(0),
51  _xorig(0),
52  _yorig(0),
53  _xsize(0),
54  _ysize(0) {
55  if (_imgBBox.isEmpty()) {
56  throw LSST_EXCEPT(ex::InvalidParameterError, "Image contains no pixels");
57  }
58 
59  // Check that an int's large enough to hold the number of pixels
60  if (_imgBBox.getWidth() * static_cast<double>(_imgBBox.getHeight()) > std::numeric_limits<int>::max()) {
62  str(boost::format("Image %dx%d has more pixels than fit in an int (%d)") %
64  }
65 
66  _setCenOrigSize(_imgBBox.getWidth(), _imgBBox.getHeight(), bgCtrl.getNxSample(), bgCtrl.getNySample());
67 }
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48
std::vector< double > _ycen
y center ...
Definition: Background.h:369
std::vector< double > _xcen
x center pix coords of sub images
Definition: Background.h:368
std::vector< int > _xsize
x size of sub images
Definition: Background.h:372
lsst::geom::Box2I _imgBBox
size and origin of input image
Definition: Background.h:363
std::vector< int > _xorig
x origin pix coords of sub images
Definition: Background.h:370
UndersampleStyle _asUsedUndersampleStyle
the undersampleStyle we actually used
Definition: Background.h:366
std::vector< int > _ysize
y size ...
Definition: Background.h:373
std::vector< int > _yorig
y origin ...
Definition: Background.h:371
Interpolate::Style _asUsedInterpStyle
the style we actually used
Definition: Background.h:365
std::shared_ptr< BackgroundControl > _bctrl
control info set by user.
Definition: Background.h:364
int getHeight() const noexcept
Definition: Box.h:188
bool isEmpty() const noexcept
Return true if the box contains no points.
Definition: Box.h:213
int getWidth() const noexcept
Definition: Box.h:187
Reports invalid arguments.
Definition: Runtime.h:66
Reports when the result of an arithmetic operation is too large for the destination type.
Definition: Runtime.h:124
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
Definition: history.py:174

◆ Background() [2/4]

lsst::afw::math::Background::Background ( lsst::geom::Box2I const  imageBBox,
int const  nx,
int const  ny 
)
explicitprotected

Create a Background without any values in it.

Parameters
imageBBoxBounding box for image to be created by getImage()
nxNumber of samples in x-direction
nyNumber of samples in y-direction
Note
This ctor is mostly used to create a Background given its sample values, and that (in turn) is mostly used to implement persistence.

Definition at line 69 of file Background.cc.

70  : _imgBBox(imageBBox),
71  _bctrl(new BackgroundControl(nx, ny)),
74  _xcen(0),
75  _ycen(0),
76  _xorig(0),
77  _yorig(0),
78  _xsize(0),
79  _ysize(0) {
80  if (_imgBBox.isEmpty()) {
81  throw LSST_EXCEPT(ex::InvalidParameterError, "Image contains no pixels");
82  }
83 
84  // Check that an int's large enough to hold the number of pixels
85  if (_imgBBox.getWidth() * static_cast<double>(_imgBBox.getHeight()) > std::numeric_limits<int>::max()) {
87  str(boost::format("Image %dx%d has more pixels than fit in an int (%d)") %
89  }
90 
91  _setCenOrigSize(_imgBBox.getWidth(), _imgBBox.getHeight(), nx, ny);
92 }

◆ Background() [3/4]

lsst::afw::math::Background::Background ( Background const &  )
delete

◆ Background() [4/4]

lsst::afw::math::Background::Background ( Background &&  )
delete

◆ ~Background()

virtual lsst::afw::math::Background::~Background ( )
virtualdefault

dtor

Member Function Documentation

◆ getApproximate()

std::shared_ptr<math::Approximate<InternalPixelT> > lsst::afw::math::Background::getApproximate ( ApproximateControl const &  actrl,
UndersampleStyle const  undersampleStyle = THROW_EXCEPTION 
) const
inline

Method to return an approximation to the background.

Parameters
actrlApproximation style
undersampleStyleBehaviour if there are too few points

Definition at line 348 of file Background.h.

350  {
351  InternalPixelT disambiguate = 0;
352  return _getApproximate(actrl, undersampleStyle, disambiguate);
353  }
float InternalPixelT
type used for any internal images, and returned by getApproximate
Definition: Background.h:262

◆ getAsUsedInterpStyle()

Interpolate::Style lsst::afw::math::Background::getAsUsedInterpStyle ( ) const
inline

Return the Interpolate::Style that we actually used in the last call to getImage()

N.b. Interpolate can fallback to a lower order if there aren't enough samples

Definition at line 337 of file Background.h.

337 { return _asUsedInterpStyle; }

◆ getAsUsedUndersampleStyle()

UndersampleStyle lsst::afw::math::Background::getAsUsedUndersampleStyle ( ) const
inline

Return the UndersampleStyle that we actually used in the last call to getImage()

Definition at line 341 of file Background.h.

341 { return _asUsedUndersampleStyle; }

◆ getBackgroundControl() [1/2]

std::shared_ptr<BackgroundControl> lsst::afw::math::Background::getBackgroundControl ( )
inline

Definition at line 359 of file Background.h.

359 { return _bctrl; }

◆ getBackgroundControl() [2/2]

std::shared_ptr<BackgroundControl const> lsst::afw::math::Background::getBackgroundControl ( ) const
inline

Definition at line 360 of file Background.h.

360 { return _bctrl; }

◆ getImage() [1/5]

template<typename PixelT >
std::shared_ptr<lsst::afw::image::Image<PixelT> > lsst::afw::math::Background::getImage ( ) const
inline

Method to interpolate and return the background for entire image.

Definition at line 329 of file Background.h.

329  {
330  return getImage<PixelT>(_bctrl->getInterpStyle(), _bctrl->getUndersampleStyle());
331  }

◆ getImage() [2/5]

template<typename PixelT >
std::shared_ptr<lsst::afw::image::Image<PixelT> > lsst::afw::math::Background::getImage ( Interpolate::Style const  interpStyle,
UndersampleStyle const  undersampleStyle = THROW_EXCEPTION 
) const
inline

Method to interpolate and return the background for entire image.

Parameters
interpStyleStyle of the interpolation
undersampleStyleBehaviour if there are too few points
Returns
A boost shared-pointer to an image containing the estimated background

Definition at line 283 of file Background.h.

285  {
286  return getImage<PixelT>(_imgBBox, interpStyle, undersampleStyle);
287  }

◆ getImage() [3/5]

template<typename PixelT >
std::shared_ptr<lsst::afw::image::Image<PixelT> > lsst::afw::math::Background::getImage ( lsst::geom::Box2I const &  bbox,
Interpolate::Style const  interpStyle,
UndersampleStyle const  undersampleStyle = THROW_EXCEPTION 
) const
inline
Parameters
bboxBounding box for sub-image
interpStyleStyle of the interpolation
undersampleStyleBehaviour if there are too few points

Definition at line 307 of file Background.h.

309  {
310  return _getImage(bbox, interpStyle, undersampleStyle, static_cast<PixelT>(0));
311  }
AmpInfoBoxKey bbox
Definition: Amplifier.cc:117

◆ getImage() [4/5]

template<typename PixelT >
std::shared_ptr<lsst::afw::image::Image<PixelT> > lsst::afw::math::Background::getImage ( lsst::geom::Box2I const &  bbox,
std::string const &  interpStyle,
std::string const &  undersampleStyle = "THROW_EXCEPTION" 
) const
inline
Parameters
bboxBounding box for sub-image
interpStyleStyle of the interpolation
undersampleStyleBehaviour if there are too few points

Definition at line 318 of file Background.h.

320  {
321  return _getImage(bbox, math::stringToInterpStyle(interpStyle),
322  stringToUndersampleStyle(undersampleStyle), static_cast<PixelT>(0));
323  }
Interpolate::Style stringToInterpStyle(std::string const &style)
Conversion function to switch a string to an Interpolate::Style.
Definition: Interpolate.cc:256
UndersampleStyle stringToUndersampleStyle(std::string const &style)
Conversion function to switch a string to an UndersampleStyle.
Definition: Background.cc:117

◆ getImage() [5/5]

template<typename PixelT >
std::shared_ptr<lsst::afw::image::Image<PixelT> > lsst::afw::math::Background::getImage ( std::string const &  interpStyle,
std::string const &  undersampleStyle = "THROW_EXCEPTION" 
) const
inline

Method to interpolate and return the background for entire image.

Parameters
interpStyleStyle of the interpolation
undersampleStyleBehaviour if there are too few points
Returns
A boost shared-pointer to an image containing the estimated background

Definition at line 296 of file Background.h.

297  {
298  return getImage<PixelT>(math::stringToInterpStyle(interpStyle),
299  stringToUndersampleStyle(undersampleStyle));
300  }

◆ getImageBBox()

lsst::geom::Box2I lsst::afw::math::Background::getImageBBox ( ) const
inline

Return the input image's (PARENT) bounding box.

Definition at line 357 of file Background.h.

357 { return _imgBBox; }

◆ operator+=()

virtual Background& lsst::afw::math::Background::operator+= ( float const  delta)
pure virtual

Add a constant level to a background.

Implemented in lsst::afw::math::BackgroundMI.

◆ operator-=()

virtual Background& lsst::afw::math::Background::operator-= ( float const  delta)
pure virtual

Subtract a constant level from a background.

Implemented in lsst::afw::math::BackgroundMI.

◆ operator=() [1/2]

Background& lsst::afw::math::Background::operator= ( Background &&  )
delete

◆ operator=() [2/2]

Background& lsst::afw::math::Background::operator= ( Background const &  )
delete

Member Data Documentation

◆ _asUsedInterpStyle

Interpolate::Style lsst::afw::math::Background::_asUsedInterpStyle
mutableprotected

the style we actually used

Definition at line 365 of file Background.h.

◆ _asUsedUndersampleStyle

UndersampleStyle lsst::afw::math::Background::_asUsedUndersampleStyle
mutableprotected

the undersampleStyle we actually used

Definition at line 366 of file Background.h.

◆ _bctrl

std::shared_ptr<BackgroundControl> lsst::afw::math::Background::_bctrl
protected

control info set by user.

Definition at line 364 of file Background.h.

◆ _imgBBox

lsst::geom::Box2I lsst::afw::math::Background::_imgBBox
protected

size and origin of input image

Definition at line 363 of file Background.h.

◆ _xcen

std::vector<double> lsst::afw::math::Background::_xcen
protected

x center pix coords of sub images

Definition at line 368 of file Background.h.

◆ _xorig

std::vector<int> lsst::afw::math::Background::_xorig
protected

x origin pix coords of sub images

Definition at line 370 of file Background.h.

◆ _xsize

std::vector<int> lsst::afw::math::Background::_xsize
protected

x size of sub images

Definition at line 372 of file Background.h.

◆ _ycen

std::vector<double> lsst::afw::math::Background::_ycen
protected

y center ...

Definition at line 369 of file Background.h.

◆ _yorig

std::vector<int> lsst::afw::math::Background::_yorig
protected

y origin ...

Definition at line 371 of file Background.h.

◆ _ysize

std::vector<int> lsst::afw::math::Background::_ysize
protected

y size ...

Definition at line 373 of file Background.h.


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