LSST Applications g0265f82a02+0e5473021a,g02d81e74bb+0dd8ce4237,g1470d8bcf6+3ea6592b6f,g2079a07aa2+86d27d4dc4,g2305ad1205+5ca4c0b359,g295015adf3+d10818ec9d,g2a9a014e59+6f9be1b9cd,g2bbee38e9b+0e5473021a,g337abbeb29+0e5473021a,g3ddfee87b4+703ba97ebf,g487adcacf7+4fa16da234,g50ff169b8f+96c6868917,g52b1c1532d+585e252eca,g591dd9f2cf+ffa42b374e,g5a732f18d5+53520f316c,g64a986408d+0dd8ce4237,g858d7b2824+0dd8ce4237,g8a8a8dda67+585e252eca,g99cad8db69+d39438377f,g9ddcbc5298+9a081db1e4,ga1e77700b3+15fc3df1f7,ga8c6da7877+f1d96605c8,gb0e22166c9+60f28cb32d,gb6a65358fc+0e5473021a,gba4ed39666+c2a2e4ac27,gbb8dafda3b+e5339d463f,gc120e1dc64+da31e9920e,gc28159a63d+0e5473021a,gcf0d15dbbd+703ba97ebf,gdaeeff99f8+f9a426f77a,ge6526c86ff+889fc9d533,ge79ae78c31+0e5473021a,gee10cc3b42+585e252eca,gf18bd8381d+7268b93478,gff1a9f87cc+0dd8ce4237,w.2024.16
LSST Data Management Base Package
Loading...
Searching...
No Matches
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
 

Public Member Functions

 Background (Background const &)=delete
 
 Background (Background &&)=delete
 
virtual ~Background ()=default
 dtor
 
Backgroundoperator= (Background const &)=delete
 
Backgroundoperator= (Background &&)=delete
 
virtual Backgroundoperator+= (float const delta)=0
 Add a constant level to a background.
 
virtual Backgroundoperator-= (float const delta)=0
 Subtract a constant level from a background.
 
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.
 
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.
 
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.
 
Interpolate::Style getAsUsedInterpStyle () const
 Return the Interpolate::Style that we actually used in the last call to getImage()
 
UndersampleStyle getAsUsedUndersampleStyle () const
 Return the UndersampleStyle that we actually used in the last call to getImage()
 
std::shared_ptr< math::Approximate< InternalPixelT > > getApproximate (ApproximateControl const &actrl, UndersampleStyle const undersampleStyle=THROW_EXCEPTION) const
 Method to return an approximation to the background.
 
lsst::geom::Box2I getImageBBox () const
 Return the input image's (PARENT) bounding box.
 
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.
 
 Background (lsst::geom::Box2I const imageBBox, int const nx, int const ny)
 Create a Background without any values in it.
 

Protected Attributes

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

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

◆ 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.
UndersampleStyle stringToUndersampleStyle(std::string const &style)
Conversion function to switch a string to an UndersampleStyle.

◆ 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: