LSSTApplications  18.0.0+106,18.0.0+50,19.0.0,19.0.0+1,19.0.0+10,19.0.0+11,19.0.0+13,19.0.0+17,19.0.0+2,19.0.0-1-g20d9b18+6,19.0.0-1-g425ff20,19.0.0-1-g5549ca4,19.0.0-1-g580fafe+6,19.0.0-1-g6fe20d0+1,19.0.0-1-g7011481+9,19.0.0-1-g8c57eb9+6,19.0.0-1-gb5175dc+11,19.0.0-1-gdc0e4a7+9,19.0.0-1-ge272bc4+6,19.0.0-1-ge3aa853,19.0.0-10-g448f008b,19.0.0-12-g6990b2c,19.0.0-2-g0d9f9cd+11,19.0.0-2-g3d9e4fb2+11,19.0.0-2-g5037de4,19.0.0-2-gb96a1c4+3,19.0.0-2-gd955cfd+15,19.0.0-3-g2d13df8,19.0.0-3-g6f3c7dc,19.0.0-4-g725f80e+11,19.0.0-4-ga671dab3b+1,19.0.0-4-gad373c5+3,19.0.0-5-ga2acb9c+2,19.0.0-5-gfe96e6c+2,w.2020.01
LSSTDataManagementBasePackage
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Friends | Related Functions | List of all members
lsst::afw::image::Image< PixelT > Class Template Reference

A class to represent a 2-dimensional array of pixels. More...

#include <Image.h>

Inheritance diagram for lsst::afw::image::Image< PixelT >:
lsst::afw::image::ImageBase< PixelT > lsst::afw::image::ImageSlice< PixelT >

Classes

struct  ImageTypeFactory
 A templated class to return this classes' type (present in Image/Mask/MaskedImage) More...
 

Public Types

typedef detail::Image_tag image_category
 
typedef PixelT SinglePixel
 A single Pixel of the same type as those in the ImageBase. More...
 
typedef PixelT Pixel
 A pixel in this ImageBase. More...
 
typedef Reference< PixelT >::type PixelReference
 A Reference to a PixelT. More...
 
typedef ConstReference< PixelT >::type PixelConstReference
 A ConstReference to a PixelT. More...
 
typedef _view_t::xy_locator xy_locator
 An xy_locator. More...
 
typedef _view_t::xy_locator::const_t const_xy_locator
 A const_xy_locator. More...
 
typedef _view_t::iterator iterator
 An STL compliant iterator. More...
 
typedef _const_view_t::iterator const_iterator
 An STL compliant const iterator. More...
 
typedef _view_t::reverse_iterator reverse_iterator
 An STL compliant reverse iterator. More...
 
typedef _const_view_t::reverse_iterator const_reverse_iterator
 An STL compliant const reverse iterator. More...
 
typedef _view_t::x_iterator x_iterator
 An iterator for traversing the pixels in a row. More...
 
typedef x_iterator fast_iterator
 A fast STL compliant iterator for contiguous images N.b. More...
 
typedef _view_t::x_iterator xy_x_iterator
 An iterator for traversing the pixels in a row, created from an xy_locator. More...
 
typedef _const_view_t::x_iterator const_x_iterator
 A const iterator for traversing the pixels in a row. More...
 
typedef _view_t::y_iterator y_iterator
 An iterator for traversing the pixels in a column. More...
 
typedef _view_t::y_iterator xy_y_iterator
 An iterator for traversing the pixels in a row, created from an xy_locator. More...
 
typedef _const_view_t::y_iterator const_y_iterator
 A const iterator for traversing the pixels in a column. More...
 
typedef ndarray::Array< PixelT, 2, 1 > Array
 A mutable ndarray representation of the image. More...
 
typedef ndarray::Array< PixelT const, 2, 1 > ConstArray
 An immutable ndarray representation of the image. More...
 

Public Member Functions

 Image (unsigned int width, unsigned int height, PixelT initialValue=0)
 Create an initialised Image of the specified size. More...
 
 Image (lsst::geom::Extent2I const &dimensions=lsst::geom::Extent2I(), PixelT initialValue=0)
 Create an initialised Image of the specified size. More...
 
 Image (lsst::geom::Box2I const &bbox, PixelT initialValue=0)
 Create an initialized Image of the specified size. More...
 
 Image (Image const &rhs, lsst::geom::Box2I const &bbox, ImageOrigin const origin=PARENT, const bool deep=false)
 Copy constructor to make a copy of part of an Image. More...
 
 Image (const Image &rhs, const bool deep=false)
 Copy constructor. More...
 
 Image (Image &&rhs)
 
 Image (std::string const &fileName, int hdu=fits::DEFAULT_HDU, std::shared_ptr< lsst::daf::base::PropertySet > metadata=std::shared_ptr< lsst::daf::base::PropertySet >(), lsst::geom::Box2I const &bbox=lsst::geom::Box2I(), ImageOrigin origin=PARENT, bool allowUnsafe=false)
 Construct an Image by reading a regular FITS file. More...
 
 Image (fits::MemFileManager &manager, int hdu=fits::DEFAULT_HDU, std::shared_ptr< lsst::daf::base::PropertySet > metadata=std::shared_ptr< lsst::daf::base::PropertySet >(), lsst::geom::Box2I const &bbox=lsst::geom::Box2I(), ImageOrigin origin=PARENT, bool allowUnsafe=false)
 Construct an Image by reading a FITS image in memory. More...
 
 Image (fits::Fits &fitsfile, std::shared_ptr< lsst::daf::base::PropertySet > metadata=std::shared_ptr< lsst::daf::base::PropertySet >(), lsst::geom::Box2I const &bbox=lsst::geom::Box2I(), ImageOrigin origin=PARENT, bool allowUnsafe=false)
 Construct an Image from an already-open FITS object. More...
 
template<typename OtherPixelT >
 Image (Image< OtherPixelT > const &rhs, const bool deep)
 
 Image (ndarray::Array< PixelT, 2, 1 > const &array, bool deep=false, lsst::geom::Point2I const &xy0=lsst::geom::Point2I())
 
 ~Image () override=default
 
Imageoperator= (const PixelT rhs)
 Set the image's pixels to rhs. More...
 
Imageoperator= (const Image &rhs)
 Assignment operator. More...
 
Imageoperator= (Image &&rhs)
 
Image subset (lsst::geom::Box2I const &bbox, ImageOrigin origin=PARENT) const
 Return a subimage corresponding to the given box. More...
 
Image operator[] (lsst::geom::Box2I const &bbox) const
 Return a subimage corresponding to the given box (interpreted as PARENT coordinates). More...
 
void writeFits (std::string const &fileName, std::shared_ptr< lsst::daf::base::PropertySet const > metadata=std::shared_ptr< lsst::daf::base::PropertySet const >(), std::string const &mode="w") const
 Write an image to a regular FITS file. More...
 
void writeFits (fits::MemFileManager &manager, std::shared_ptr< lsst::daf::base::PropertySet const > metadata=std::shared_ptr< lsst::daf::base::PropertySet const >(), std::string const &mode="w") const
 Write an image to a FITS RAM file. More...
 
void writeFits (fits::Fits &fitsfile, std::shared_ptr< lsst::daf::base::PropertySet const > metadata=std::shared_ptr< lsst::daf::base::PropertySet const >()) const
 Write an image to an open FITS file object. More...
 
void writeFits (std::string const &filename, fits::ImageWriteOptions const &options, std::string const &mode="w", std::shared_ptr< daf::base::PropertySet const > header=nullptr, std::shared_ptr< Mask< MaskPixel > const > mask=nullptr) const
 Write an image to a regular FITS file. More...
 
void writeFits (fits::MemFileManager &manager, fits::ImageWriteOptions const &options, std::string const &mode="w", std::shared_ptr< daf::base::PropertySet const > header=nullptr, std::shared_ptr< Mask< MaskPixel > const > mask=nullptr) const
 Write an image to a FITS RAM file. More...
 
void writeFits (fits::Fits &fitsfile, fits::ImageWriteOptions const &options, std::shared_ptr< daf::base::PropertySet const > header=nullptr, std::shared_ptr< Mask< MaskPixel > const > mask=nullptr) const
 Write an image to an open FITS file object. More...
 
void swap (Image &rhs)
 
Imageoperator+= (PixelT const rhs)
 Add scalar rhs to lhs. More...
 
virtual Imageoperator+= (Image< PixelT > const &rhs)
 Add Image rhs to lhs. More...
 
Imageoperator+= (lsst::afw::math::Function2< double > const &function)
 Add a Function2(x, y) to an Image. More...
 
void scaledPlus (double const c, Image< PixelT > const &rhs)
 Add Image c*rhs to lhs. More...
 
Imageoperator-= (PixelT const rhs)
 Subtract scalar rhs from lhs. More...
 
Imageoperator-= (Image< PixelT > const &rhs)
 Subtract Image rhs from lhs. More...
 
Imageoperator-= (lsst::afw::math::Function2< double > const &function)
 Subtract a Function2(x, y) from an Image. More...
 
void scaledMinus (double const c, Image< PixelT > const &rhs)
 Subtract Image c*rhs from lhs. More...
 
Imageoperator*= (PixelT const rhs)
 Multiply lhs by scalar rhs. More...
 
Imageoperator*= (Image< PixelT > const &rhs)
 Multiply lhs by Image rhs (i.e. pixel-by-pixel multiplication) More...
 
void scaledMultiplies (double const c, Image< PixelT > const &rhs)
 Multiply lhs by Image c*rhs (i.e. pixel-by-pixel multiplication) More...
 
Imageoperator/= (PixelT const rhs)
 Divide lhs by scalar rhs. More...
 
Imageoperator/= (Image< PixelT > const &rhs)
 Divide lhs by Image rhs (i.e. pixel-by-pixel division) More...
 
void scaledDivides (double const c, Image< PixelT > const &rhs)
 Divide lhs by Image c*rhs (i.e. pixel-by-pixel division) More...
 
void sqrt ()
 
template<>
Image< double > & operator/= (double const rhs)
 
template<>
Image< float > & operator/= (float const rhs)
 
ImageBaseoperator<<= (const ImageBase &rhs)
 Set the lhs's pixel values to equal the rhs's. More...
 
void assign (ImageBase const &rhs, lsst::geom::Box2I const &bbox=lsst::geom::Box2I(), ImageOrigin origin=PARENT)
 Copy pixels from another image to a specified subregion of this image. More...
 
PixelReference operator() (int x, int y)
 Return a reference to the pixel (x, y) in LOCAL coordinates. More...
 
PixelReference operator() (int x, int y, CheckIndices const &)
 Return a reference to the pixel (x, y) in LOCAL coordinates with bounds checking. More...
 
PixelConstReference operator() (int x, int y) const
 Return a const reference to the pixel (x, y) in LOCAL coordinates. More...
 
PixelConstReference operator() (int x, int y, CheckIndices const &) const
 Return a const reference to the pixel (x, y) in LOCAL coordinates with bounds checking. More...
 
PixelReference get (lsst::geom::Point2I const &index, ImageOrigin origin)
 Return a reference to a single pixel (with no bounds check). More...
 
PixelConstReference get (lsst::geom::Point2I const &index, ImageOrigin origin) const
 Return a const reference to a single pixel (with no bounds check). More...
 
PixelReference operator[] (lsst::geom::Point2I const &index)
 Return a reference to a single pixel in PARENT coordinates (with no bounds check). More...
 
PixelConstReference operator[] (lsst::geom::Point2I const &index) const
 Return a reference to a single pixel in PARENT coordinates (with no bounds check). More...
 
int getWidth () const
 Return the number of columns in the image. More...
 
int getHeight () const
 Return the number of rows in the image. More...
 
int getX0 () const
 Return the image's column-origin. More...
 
int getY0 () const
 Return the image's row-origin. More...
 
lsst::geom::Point2I getXY0 () const
 Return the image's origin. More...
 
std::pair< int, double > positionToIndex (double const pos, lsst::afw::image::xOrY const xy) const
 Convert image position to index (nearest integer and fractional parts) More...
 
double indexToPosition (double ind, lsst::afw::image::xOrY const xy) const
 Convert image index to image position. More...
 
lsst::geom::Extent2I getDimensions () const
 Return the image's size; useful for passing to constructors. More...
 
void swap (ImageBase &rhs)
 
Array getArray ()
 
ConstArray getArray () const
 
iterator begin () const
 Return an STL compliant iterator to the start of the image. More...
 
fast_iterator begin (bool contiguous) const
 Return a fast STL compliant iterator to the start of the image which must be contiguous. More...
 
iterator end () const
 Return an STL compliant iterator to the end of the image. More...
 
fast_iterator end (bool contiguous) const
 Return a fast STL compliant iterator to the end of the image which must be contiguous. More...
 
reverse_iterator rbegin () const
 Return an STL compliant reverse iterator to the start of the image. More...
 
reverse_iterator rend () const
 Return an STL compliant reverse iterator to the end of the image. More...
 
iterator at (int x, int y) const
 Return an STL compliant iterator at the point (x, y) More...
 
x_iterator row_begin (int y) const
 Return an x_iterator to the start of the y'th row. More...
 
x_iterator row_end (int y) const
 Return an x_iterator to the end of the y'th row. More...
 
x_iterator x_at (int x, int y) const
 Return an x_iterator to the point (x, y) in the image. More...
 
y_iterator col_begin (int x) const
 Return an y_iterator to the start of the y'th row. More...
 
y_iterator col_end (int x) const
 Return an y_iterator to the start of the y'th row. More...
 
y_iterator y_at (int x, int y) const
 Return an y_iterator to the point (x, y) in the image. More...
 
xy_locator xy_at (int x, int y) const
 Return an xy_locator at the point (x, y) in the image. More...
 
void setXY0 (lsst::geom::Point2I const origin)
 Set the ImageBase's origin. More...
 
void setXY0 (int const x0, int const y0)
 Set the ImageBase's origin. More...
 
lsst::geom::Box2I getBBox (ImageOrigin origin=PARENT) const
 
instead To be removed after PixelConstReference get0 (int x, int y) const
 
provides unchecked lookup To be removed after PixelConstReference get0 (int x, int y, CheckIndices const &check) const
 
instead To be removed after void set0 (int x, int y, const PixelT v)
 
provides unchecked lookup To be removed after void set0 (int x, int y, const PixelT v, CheckIndices const &check)
 

Static Public Member Functions

static Image readFits (std::string const &filename, int hdu=fits::DEFAULT_HDU)
 Read an Image from a regular FITS file. More...
 
static Image readFits (fits::MemFileManager &manager, int hdu=fits::DEFAULT_HDU)
 Read an Image from a FITS RAM file. More...
 
template<typename SinglePixelT >
static SinglePixel PixelCast (SinglePixelT rhs)
 Convert a type to our SinglePixel type. More...
 

Protected Member Functions

_view_t _getRawView () const
 
bool isContiguous () const
 

Static Protected Member Functions

static _view_t _allocateView (lsst::geom::Extent2I const &dimensions, Manager::Ptr &manager)
 
static _view_t _makeSubView (lsst::geom::Extent2I const &dimensions, lsst::geom::Extent2I const &offset, const _view_t &view)
 

Friends

template<typename , typename , typename >
class MaskedImage
 
template<typename OtherPixelT >
class Image
 

Related Functions

(Note that these are not member functions.)

template<typename ImageT >
ImageT::SinglePixel badPixel (typename ImageT::Pixel bad=0)
 Return a value indicating a bad pixel for the given Image type. More...
 

Detailed Description

template<typename PixelT>
class lsst::afw::image::Image< PixelT >

A class to represent a 2-dimensional array of pixels.

Examples:
forEachPixel.cc, image1.cc, image2.cc, and imageStatistics.cc.

Definition at line 58 of file Image.h.

Member Typedef Documentation

◆ Array

template<typename PixelT>
typedef ndarray::Array<PixelT, 2, 1> lsst::afw::image::ImageBase< PixelT >::Array
inherited

A mutable ndarray representation of the image.

Definition at line 149 of file ImageBase.h.

◆ const_iterator

template<typename PixelT>
typedef _const_view_t::iterator lsst::afw::image::ImageBase< PixelT >::const_iterator
inherited

An STL compliant const iterator.

Definition at line 127 of file ImageBase.h.

◆ const_reverse_iterator

template<typename PixelT>
typedef _const_view_t::reverse_iterator lsst::afw::image::ImageBase< PixelT >::const_reverse_iterator
inherited

An STL compliant const reverse iterator.

Definition at line 131 of file ImageBase.h.

◆ const_x_iterator

template<typename PixelT>
typedef _const_view_t::x_iterator lsst::afw::image::ImageBase< PixelT >::const_x_iterator
inherited

A const iterator for traversing the pixels in a row.

Definition at line 141 of file ImageBase.h.

◆ const_xy_locator

template<typename PixelT>
typedef _view_t::xy_locator::const_t lsst::afw::image::ImageBase< PixelT >::const_xy_locator
inherited

A const_xy_locator.

Definition at line 123 of file ImageBase.h.

◆ const_y_iterator

template<typename PixelT>
typedef _const_view_t::y_iterator lsst::afw::image::ImageBase< PixelT >::const_y_iterator
inherited

A const iterator for traversing the pixels in a column.

Definition at line 147 of file ImageBase.h.

◆ ConstArray

template<typename PixelT>
typedef ndarray::Array<PixelT const, 2, 1> lsst::afw::image::ImageBase< PixelT >::ConstArray
inherited

An immutable ndarray representation of the image.

Definition at line 151 of file ImageBase.h.

◆ fast_iterator

template<typename PixelT>
typedef x_iterator lsst::afw::image::ImageBase< PixelT >::fast_iterator
inherited

A fast STL compliant iterator for contiguous images N.b.

The order of pixel access is undefined

Definition at line 137 of file ImageBase.h.

◆ image_category

template<typename PixelT>
typedef detail::Image_tag lsst::afw::image::Image< PixelT >::image_category

Definition at line 63 of file Image.h.

◆ iterator

template<typename PixelT>
typedef _view_t::iterator lsst::afw::image::ImageBase< PixelT >::iterator
inherited

An STL compliant iterator.

Definition at line 125 of file ImageBase.h.

◆ Pixel

template<typename PixelT>
typedef PixelT lsst::afw::image::ImageBase< PixelT >::Pixel
inherited

A pixel in this ImageBase.

Definition at line 115 of file ImageBase.h.

◆ PixelConstReference

template<typename PixelT>
typedef ConstReference<PixelT>::type lsst::afw::image::ImageBase< PixelT >::PixelConstReference
inherited

A ConstReference to a PixelT.

Definition at line 119 of file ImageBase.h.

◆ PixelReference

template<typename PixelT>
typedef Reference<PixelT>::type lsst::afw::image::ImageBase< PixelT >::PixelReference
inherited

A Reference to a PixelT.

Definition at line 117 of file ImageBase.h.

◆ reverse_iterator

template<typename PixelT>
typedef _view_t::reverse_iterator lsst::afw::image::ImageBase< PixelT >::reverse_iterator
inherited

An STL compliant reverse iterator.

Definition at line 129 of file ImageBase.h.

◆ SinglePixel

template<typename PixelT>
typedef PixelT lsst::afw::image::ImageBase< PixelT >::SinglePixel
inherited

A single Pixel of the same type as those in the ImageBase.

Definition at line 113 of file ImageBase.h.

◆ x_iterator

template<typename PixelT>
typedef _view_t::x_iterator lsst::afw::image::ImageBase< PixelT >::x_iterator
inherited

An iterator for traversing the pixels in a row.

Definition at line 133 of file ImageBase.h.

◆ xy_locator

template<typename PixelT>
typedef _view_t::xy_locator lsst::afw::image::ImageBase< PixelT >::xy_locator
inherited

An xy_locator.

Definition at line 121 of file ImageBase.h.

◆ xy_x_iterator

template<typename PixelT>
typedef _view_t::x_iterator lsst::afw::image::ImageBase< PixelT >::xy_x_iterator
inherited

An iterator for traversing the pixels in a row, created from an xy_locator.

Definition at line 139 of file ImageBase.h.

◆ xy_y_iterator

template<typename PixelT>
typedef _view_t::y_iterator lsst::afw::image::ImageBase< PixelT >::xy_y_iterator
inherited

An iterator for traversing the pixels in a row, created from an xy_locator.

Definition at line 145 of file ImageBase.h.

◆ y_iterator

template<typename PixelT>
typedef _view_t::y_iterator lsst::afw::image::ImageBase< PixelT >::y_iterator
inherited

An iterator for traversing the pixels in a column.

Definition at line 143 of file ImageBase.h.

Constructor & Destructor Documentation

◆ Image() [1/11]

template<typename PixelT>
lsst::afw::image::Image< PixelT >::Image ( unsigned int  width,
unsigned int  height,
PixelT  initialValue = 0 
)
explicit

Create an initialised Image of the specified size.

Parameters
widthnumber of columns
heightnumber of rows
initialValueInitial value
Note
Many lsst::afw::image and lsst::afw::math objects define a dimensions member which may be conveniently used to make objects of an appropriate size

Definition at line 322 of file Image.cc.

323  : ImageBase<PixelT>(lsst::geom::ExtentI(width, height)) {
324  *this = initialValue;
325 }
Extent< int, 2 > ExtentI
Definition: Extent.h:396

◆ Image() [2/11]

template<typename PixelT>
lsst::afw::image::Image< PixelT >::Image ( lsst::geom::Extent2I const &  dimensions = lsst::geom::Extent2I(),
PixelT  initialValue = 0 
)
explicit

Create an initialised Image of the specified size.

Parameters
dimensionsNumber of columns, rows
initialValueInitial value
Note
Many lsst::afw::image and lsst::afw::math objects define a dimensions member which may be conveniently used to make objects of an appropriate size

Definition at line 328 of file Image.cc.

329  : ImageBase<PixelT>(dimensions) {
330  *this = initialValue;
331 }
afw::table::PointKey< int > dimensions
Definition: GaussianPsf.cc:49

◆ Image() [3/11]

template<typename PixelT>
lsst::afw::image::Image< PixelT >::Image ( lsst::geom::Box2I const &  bbox,
PixelT  initialValue = 0 
)
explicit

Create an initialized Image of the specified size.

Parameters
bboxdimensions and origin of desired Image
initialValueInitial value

Definition at line 334 of file Image.cc.

334  : ImageBase<PixelT>(bbox) {
335  *this = initialValue;
336 }
AmpInfoBoxKey bbox
Definition: Amplifier.cc:117

◆ Image() [4/11]

template<typename PixelT>
lsst::afw::image::Image< PixelT >::Image ( Image< PixelT > const &  rhs,
lsst::geom::Box2I const &  bbox,
ImageOrigin const  origin = PARENT,
const bool  deep = false 
)
explicit

Copy constructor to make a copy of part of an Image.

The bbox ignores X0/Y0 if origin == LOCAL, and uses it if origin == PARENT.

Parameters
rhsRight-hand-side Image
bboxSpecify desired region
originCoordinate system of the bbox
deepIf false, new ImageBase shares storage with rhs; if true make a new, standalone, ImageBase
Note
Unless deep is true, the new image will share the old image's pixels; this is probably what you want

Definition at line 345 of file Image.cc.

347  : ImageBase<PixelT>(rhs, bbox, origin, deep) {}
AmpInfoBoxKey bbox
Definition: Amplifier.cc:117

◆ Image() [5/11]

template<typename PixelT>
lsst::afw::image::Image< PixelT >::Image ( const Image< PixelT > &  rhs,
const bool  deep = false 
)

Copy constructor.

Parameters
rhsRight-hand-side Image
deepIf false, new Image shares storage with rhs; if true make a new, standalone, ImageBase
Note
Unless deep is true, the new image will share the old image's pixels; this may not be what you want. See also assign(rhs) to copy pixels between Images

Definition at line 339 of file Image.cc.

339 : ImageBase<PixelT>(rhs, deep) {}

◆ Image() [6/11]

template<typename PixelT>
lsst::afw::image::Image< PixelT >::Image ( Image< PixelT > &&  rhs)

Definition at line 342 of file Image.cc.

342 : Image(rhs, false) {}
friend class Image
Definition: Image.h:72

◆ Image() [7/11]

template<typename PixelT>
lsst::afw::image::Image< PixelT >::Image ( std::string const &  fileName,
int  hdu = fits::DEFAULT_HDU,
std::shared_ptr< lsst::daf::base::PropertySet metadata = std::shared_ptrlsst::daf::base::PropertySet >(),
lsst::geom::Box2I const &  bbox = lsst::geom::Box2I(),
ImageOrigin  origin = PARENT,
bool  allowUnsafe = false 
)
explicit

Construct an Image by reading a regular FITS file.

Parameters
[in]fileNameFile to read.
[in]hduHDU to read, 0-indexed (i.e. 0=Primary HDU). The special value of afw::fits::DEFAULT_HDU reads the Primary HDU unless it is empty, in which case it reads the first extension HDU.
[in,out]metadataMetadata read from the header (may be null).
[in]bboxIf non-empty, read only the pixels within the bounding box.
[in]originCoordinate system of the bounding box; if PARENT, the bounding box should take into account the xy0 saved with the image.
[in]allowUnsafePermit reading into the requested pixel type even when on-disk values may overflow or truncate.

◆ Image() [8/11]

template<typename PixelT>
lsst::afw::image::Image< PixelT >::Image ( fits::MemFileManager manager,
int  hdu = fits::DEFAULT_HDU,
std::shared_ptr< lsst::daf::base::PropertySet metadata = std::shared_ptrlsst::daf::base::PropertySet >(),
lsst::geom::Box2I const &  bbox = lsst::geom::Box2I(),
ImageOrigin  origin = PARENT,
bool  allowUnsafe = false 
)
explicit

Construct an Image by reading a FITS image in memory.

Parameters
[in]managerAn object that manages the memory buffer to read.
[in]hduHDU to read, 0-indexed (i.e. 0=Primary HDU). The special value of afw::fits::DEFAULT_HDU reads the Primary HDU unless it is empty, in which case it reads the first extension HDU.
[in,out]metadataMetadata read from the header (may be null).
[in]bboxIf non-empty, read only the pixels within the bounding box.
[in]originCoordinate system of the bounding box; if PARENT, the bounding box should take into account the xy0 saved with the image.
[in]allowUnsafePermit reading into the requested pixel type even when on-disk values may overflow or truncate.

◆ Image() [9/11]

template<typename PixelT>
lsst::afw::image::Image< PixelT >::Image ( fits::Fits fitsfile,
std::shared_ptr< lsst::daf::base::PropertySet metadata = std::shared_ptrlsst::daf::base::PropertySet >(),
lsst::geom::Box2I const &  bbox = lsst::geom::Box2I(),
ImageOrigin  origin = PARENT,
bool  allowUnsafe = false 
)
explicit

Construct an Image from an already-open FITS object.

Parameters
[in]fitsfileA FITS object to read from, already at the desired HDU.
[in,out]metadataMetadata read from the header (may be null).
[in]bboxIf non-empty, read only the pixels within the bounding box.
[in]originCoordinate system of the bounding box; if PARENT, the bounding box should take into account the xy0 saved with the image.
[in]allowUnsafePermit reading into the requested pixel type even when on-disk values may overflow or truncate.

◆ Image() [10/11]

template<typename PixelT>
template<typename OtherPixelT >
lsst::afw::image::Image< PixelT >::Image ( Image< OtherPixelT > const &  rhs,
const bool  deep 
)
inline

Definition at line 189 of file Image.h.

189 : image::ImageBase<PixelT>(rhs, deep) {}
The base class for all image classed (Image, Mask, MaskedImage, ...)
Definition: ImageBase.h:102

◆ Image() [11/11]

template<typename PixelT>
lsst::afw::image::Image< PixelT >::Image ( ndarray::Array< PixelT, 2, 1 > const &  array,
bool  deep = false,
lsst::geom::Point2I const &  xy0 = lsst::geom::Point2I() 
)
inlineexplicit

Definition at line 191 of file Image.h.

193  : image::ImageBase<PixelT>(array, deep, xy0) {}
The base class for all image classed (Image, Mask, MaskedImage, ...)
Definition: ImageBase.h:102

◆ ~Image()

template<typename PixelT>
lsst::afw::image::Image< PixelT >::~Image ( )
overridedefault

Member Function Documentation

◆ _allocateView()

template<typename PixelT >
ImageBase< PixelT >::_view_t lsst::afw::image::ImageBase< PixelT >::_allocateView ( lsst::geom::Extent2I const &  dimensions,
Manager::Ptr &  manager 
)
staticprotectedinherited

Definition at line 58 of file Image.cc.

59  {
60  if (dimensions.getX() < 0 || dimensions.getY() < 0) {
61  throw LSST_EXCEPT(pex::exceptions::LengthError,
62  str(boost::format("Both width and height must be non-negative: %d, %d") %
63  dimensions.getX() % dimensions.getY()));
64  }
65  if (dimensions.getX() != 0 && dimensions.getY() > std::numeric_limits<int>::max() / dimensions.getX()) {
66  throw LSST_EXCEPT(pex::exceptions::LengthError,
67  str(boost::format("Image dimensions (%d x %d) too large; int overflow detected.") %
68  dimensions.getX() % dimensions.getY()));
69  }
71  ndarray::SimpleManager<PixelT>::allocate(dimensions.getX() * dimensions.getY());
72  manager = r.first;
73  return boost::gil::interleaved_view(dimensions.getX(), dimensions.getY(),
74  (typename _view_t::value_type*)r.second,
75  dimensions.getX() * sizeof(PixelT));
76 }
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
Definition: history.py:174
afw::table::PointKey< int > dimensions
Definition: GaussianPsf.cc:49
T max(T... args)
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48

◆ _getRawView()

template<typename PixelT>
_view_t lsst::afw::image::ImageBase< PixelT >::_getRawView ( ) const
inlineprotectedinherited

Definition at line 502 of file ImageBase.h.

502 { return _gilView; }

◆ _makeSubView()

template<typename PixelT >
ImageBase< PixelT >::_view_t lsst::afw::image::ImageBase< PixelT >::_makeSubView ( lsst::geom::Extent2I const &  dimensions,
lsst::geom::Extent2I const &  offset,
const _view_t &  view 
)
staticprotectedinherited

Definition at line 78 of file Image.cc.

80  {
81  if (offset.getX() < 0 || offset.getY() < 0 || offset.getX() + dimensions.getX() > view.width() ||
82  offset.getY() + dimensions.getY() > view.height()) {
83  throw LSST_EXCEPT(
84  pex::exceptions::LengthError,
86  "Box2I(Point2I(%d,%d),lsst::geom::Extent2I(%d,%d)) doesn't fit in image %dx%d") %
87  offset.getX() % offset.getY() % dimensions.getX() % dimensions.getY() % view.width() %
88  view.height())
89  .str());
90  }
91  return boost::gil::subimage_view(view, offset.getX(), offset.getY(), dimensions.getX(),
92  dimensions.getY());
93 }
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
Definition: history.py:174
afw::table::PointKey< int > dimensions
Definition: GaussianPsf.cc:49
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48

◆ assign()

template<typename PixelT >
void lsst::afw::image::ImageBase< PixelT >::assign ( ImageBase< PixelT > const &  rhs,
lsst::geom::Box2I const &  bbox = lsst::geom::Box2I(),
ImageOrigin  origin = PARENT 
)
inherited

Copy pixels from another image to a specified subregion of this image.

Parameters
[in]rhssource image whose pixels are to be copied into this image (the destination)
[in]bboxsubregion of this image to set; if empty (the default) then all pixels are set
[in]originorigin of bbox: if PARENT then the lower left pixel of this image is at xy0 if LOCAL then the lower left pixel of this image is at 0,0
Exceptions
lsst::pex::exceptions::LengthErrorif the dimensions of rhs and the specified subregion of this image do not match.

Definition at line 166 of file Image.cc.

166  {
167  auto lhsDim = bbox.isEmpty() ? getDimensions() : bbox.getDimensions();
168  if (lhsDim != rhs.getDimensions()) {
169  throw LSST_EXCEPT(pex::exceptions::LengthError,
170  (boost::format("Dimension mismatch: %dx%d v. %dx%d") % lhsDim.getX() %
171  lhsDim.getY() % rhs.getWidth() % rhs.getHeight())
172  .str());
173  }
174  if (bbox.isEmpty()) {
175  copy_pixels(rhs._gilView, _gilView);
176  } else {
177  auto lhsOff = (origin == PARENT) ? bbox.getMin() - _origin : lsst::geom::Extent2I(bbox.getMin());
178  auto lhsGilView = _makeSubView(lhsDim, lhsOff, _gilView);
179  copy_pixels(rhs._gilView, lhsGilView);
180  }
181 }
AmpInfoBoxKey bbox
Definition: Amplifier.cc:117
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
Definition: history.py:174
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48
Extent< int, 2 > Extent2I
Definition: Extent.h:397
lsst::geom::Extent2I getDimensions() const
Return the image&#39;s size; useful for passing to constructors.
Definition: ImageBase.h:393
static _view_t _makeSubView(lsst::geom::Extent2I const &dimensions, lsst::geom::Extent2I const &offset, const _view_t &view)
Definition: Image.cc:78

◆ at()

template<typename PixelT >
ImageBase< PixelT >::iterator lsst::afw::image::ImageBase< PixelT >::at ( int  x,
int  y 
) const
inherited

Return an STL compliant iterator at the point (x, y)

Definition at line 283 of file Image.cc.

283  {
284  return _gilView.at(x, y);
285 }
int y
Definition: SpanSet.cc:49
double x

◆ begin() [1/2]

template<typename PixelT >
ImageBase< PixelT >::iterator lsst::afw::image::ImageBase< PixelT >::begin ( ) const
inherited

Return an STL compliant iterator to the start of the image.

Note that this isn't especially efficient; see imageIterators for a discussion

Definition at line 263 of file Image.cc.

263  {
264  return _gilView.begin();
265 }

◆ begin() [2/2]

template<typename PixelT >
ImageBase< PixelT >::fast_iterator lsst::afw::image::ImageBase< PixelT >::begin ( bool  contiguous) const
inherited

Return a fast STL compliant iterator to the start of the image which must be contiguous.

Parameters
contiguousPixels are contiguous (must be true)
Exceptions
lsst::pex::exceptions::RuntimeErrorArgument contiguous is false, or the pixels are not in fact contiguous

Definition at line 288 of file Image.cc.

288  {
289  if (!contiguous) {
290  throw LSST_EXCEPT(pex::exceptions::RuntimeError, "Only contiguous == true makes sense");
291  }
292  if (!this->isContiguous()) {
293  throw LSST_EXCEPT(pex::exceptions::RuntimeError, "Image's pixels are not contiguous");
294  }
295 
296  return row_begin(0);
297 }
x_iterator row_begin(int y) const
Return an x_iterator to the start of the y&#39;th row.
Definition: ImageBase.h:438
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48

◆ col_begin()

template<typename PixelT>
y_iterator lsst::afw::image::ImageBase< PixelT >::col_begin ( int  x) const
inlineinherited

Return an y_iterator to the start of the y'th row.

Incrementing an y_iterator moves it up the column

Definition at line 450 of file ImageBase.h.

450 { return _gilView.col_begin(x); }
double x

◆ col_end()

template<typename PixelT>
y_iterator lsst::afw::image::ImageBase< PixelT >::col_end ( int  x) const
inlineinherited

Return an y_iterator to the start of the y'th row.

Definition at line 453 of file ImageBase.h.

453 { return _gilView.col_end(x); }
double x

◆ end() [1/2]

template<typename PixelT >
ImageBase< PixelT >::iterator lsst::afw::image::ImageBase< PixelT >::end ( ) const
inherited

Return an STL compliant iterator to the end of the image.

Definition at line 268 of file Image.cc.

268  {
269  return _gilView.end();
270 }

◆ end() [2/2]

template<typename PixelT >
ImageBase< PixelT >::fast_iterator lsst::afw::image::ImageBase< PixelT >::end ( bool  contiguous) const
inherited

Return a fast STL compliant iterator to the end of the image which must be contiguous.

Parameters
contiguousPixels are contiguous (must be true)
Exceptions
lsst::pex::exceptions::RuntimeErrorArgument contiguous is false, or the pixels are not in fact contiguous

Definition at line 300 of file Image.cc.

300  {
301  if (!contiguous) {
302  throw LSST_EXCEPT(pex::exceptions::RuntimeError, "Only contiguous == true makes sense");
303  }
304  if (!this->isContiguous()) {
305  throw LSST_EXCEPT(pex::exceptions::RuntimeError, "Image's pixels are not contiguous");
306  }
307 
308  return row_end(getHeight() - 1);
309 }
int getHeight() const
Return the number of rows in the image.
Definition: ImageBase.h:335
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48
x_iterator row_end(int y) const
Return an x_iterator to the end of the y&#39;th row.
Definition: ImageBase.h:441

◆ get() [1/2]

template<typename PixelT >
ImageBase< PixelT >::PixelReference lsst::afw::image::ImageBase< PixelT >::get ( lsst::geom::Point2I const &  index,
ImageOrigin  origin 
)
inherited

Return a reference to a single pixel (with no bounds check).

Definition at line 222 of file Image.cc.

223  {
224  int x = index.getX();
225  int y = index.getY();
226  if (origin == PARENT) {
227  x -= getX0();
228  y -= getY0();
229  }
230  return _gilView(x, y)[0];
231 }
int y
Definition: SpanSet.cc:49
int getX0() const
Return the image&#39;s column-origin.
Definition: ImageBase.h:343
double x
int getY0() const
Return the image&#39;s row-origin.
Definition: ImageBase.h:351

◆ get() [2/2]

template<typename PixelT >
ImageBase< PixelT >::PixelConstReference lsst::afw::image::ImageBase< PixelT >::get ( lsst::geom::Point2I const &  index,
ImageOrigin  origin 
) const
inherited

Return a const reference to a single pixel (with no bounds check).

Definition at line 234 of file Image.cc.

235  {
236  int x = index.getX();
237  int y = index.getY();
238  if (origin == PARENT) {
239  x -= getX0();
240  y -= getY0();
241  }
242  return _gilView(x, y)[0];
243 }
int y
Definition: SpanSet.cc:49
int getX0() const
Return the image&#39;s column-origin.
Definition: ImageBase.h:343
double x
int getY0() const
Return the image&#39;s row-origin.
Definition: ImageBase.h:351

◆ get0() [1/2]

template<typename PixelT>
instead To be removed after PixelConstReference lsst::afw::image::ImageBase< PixelT >::get0 ( int  x,
int  y 
) const
inlineinherited
Deprecated:
Deprecated in 16.0.

To be removed after 20.0.0. Replaced by get(Point2I, ImageOrigin).

Definition at line 296 of file ImageBase.h.

296  {
297  return operator()(x - getX0(), y - getY0());
298  }
int y
Definition: SpanSet.cc:49
int getX0() const
Return the image&#39;s column-origin.
Definition: ImageBase.h:343
double x
int getY0() const
Return the image&#39;s row-origin.
Definition: ImageBase.h:351
PixelReference operator()(int x, int y)
Return a reference to the pixel (x, y) in LOCAL coordinates.
Definition: Image.cc:184

◆ get0() [2/2]

template<typename PixelT>
provides unchecked lookup To be removed after PixelConstReference lsst::afw::image::ImageBase< PixelT >::get0 ( int  x,
int  y,
CheckIndices const &  check 
) const
inlineinherited
Deprecated:
Deprecated in 16.0.

To be removed after 20.0.0. Replaced by get(Point2I, ImageOrigin).

Definition at line 303 of file ImageBase.h.

303  {
304  return operator()(x - getX0(), y - getY0(), check);
305  }
int y
Definition: SpanSet.cc:49
int getX0() const
Return the image&#39;s column-origin.
Definition: ImageBase.h:343
double x
int getY0() const
Return the image&#39;s row-origin.
Definition: ImageBase.h:351
PixelReference operator()(int x, int y)
Return a reference to the pixel (x, y) in LOCAL coordinates.
Definition: Image.cc:184

◆ getArray() [1/2]

template<typename PixelT >
ImageBase< PixelT >::Array lsst::afw::image::ImageBase< PixelT >::getArray ( )
inherited

Definition at line 513 of file ImageBase.h.

513  {
514  int rowStride = reinterpret_cast<PixelT*>(row_begin(1)) - reinterpret_cast<PixelT*>(row_begin(0));
515  return ndarray::external(reinterpret_cast<PixelT*>(row_begin(0)),
516  ndarray::makeVector(getHeight(), getWidth()), ndarray::makeVector(rowStride, 1),
517  this->_manager);
518 }
int getHeight() const
Return the number of rows in the image.
Definition: ImageBase.h:335
x_iterator row_begin(int y) const
Return an x_iterator to the start of the y&#39;th row.
Definition: ImageBase.h:438
int getWidth() const
Return the number of columns in the image.
Definition: ImageBase.h:333

◆ getArray() [2/2]

template<typename PixelT >
ImageBase< PixelT >::ConstArray lsst::afw::image::ImageBase< PixelT >::getArray ( ) const
inherited

Definition at line 521 of file ImageBase.h.

521  {
522  int rowStride = reinterpret_cast<PixelT*>(row_begin(1)) - reinterpret_cast<PixelT*>(row_begin(0));
523  return ndarray::external(reinterpret_cast<PixelT*>(row_begin(0)),
524  ndarray::makeVector(getHeight(), getWidth()), ndarray::makeVector(rowStride, 1),
525  this->_manager);
526 }
int getHeight() const
Return the number of rows in the image.
Definition: ImageBase.h:335
x_iterator row_begin(int y) const
Return an x_iterator to the start of the y&#39;th row.
Definition: ImageBase.h:438
int getWidth() const
Return the number of columns in the image.
Definition: ImageBase.h:333

◆ getBBox()

template<typename PixelT>
lsst::geom::Box2I lsst::afw::image::ImageBase< PixelT >::getBBox ( ImageOrigin  origin = PARENT) const
inlineinherited

Definition at line 482 of file ImageBase.h.

482  {
483  if (origin == PARENT) {
484  return lsst::geom::Box2I(_origin, getDimensions());
485  } else
487  }
lsst::geom::Extent2I getDimensions() const
Return the image&#39;s size; useful for passing to constructors.
Definition: ImageBase.h:393

◆ getDimensions()

template<typename PixelT>
lsst::geom::Extent2I lsst::afw::image::ImageBase< PixelT >::getDimensions ( ) const
inlineinherited

Return the image's size; useful for passing to constructors.

Definition at line 393 of file ImageBase.h.

393 { return lsst::geom::Extent2I(getWidth(), getHeight()); }
int getHeight() const
Return the number of rows in the image.
Definition: ImageBase.h:335
Extent< int, 2 > Extent2I
Definition: Extent.h:397
int getWidth() const
Return the number of columns in the image.
Definition: ImageBase.h:333

◆ getHeight()

template<typename PixelT>
int lsst::afw::image::ImageBase< PixelT >::getHeight ( ) const
inlineinherited

Return the number of rows in the image.

Definition at line 335 of file ImageBase.h.

335 { return _gilView.height(); }

◆ getWidth()

template<typename PixelT>
int lsst::afw::image::ImageBase< PixelT >::getWidth ( ) const
inlineinherited

Return the number of columns in the image.

Definition at line 333 of file ImageBase.h.

333 { return _gilView.width(); }

◆ getX0()

template<typename PixelT>
int lsst::afw::image::ImageBase< PixelT >::getX0 ( ) const
inlineinherited

Return the image's column-origin.

This will usually be 0 except for images created using the ImageBase(fileName, hdu, BBox, mode) ctor or ImageBase(ImageBase, BBox) cctor The origin can be reset with setXY0

Definition at line 343 of file ImageBase.h.

343 { return _origin.getX(); }

◆ getXY0()

template<typename PixelT>
lsst::geom::Point2I lsst::afw::image::ImageBase< PixelT >::getXY0 ( ) const
inlineinherited

Return the image's origin.

This will usually be (0, 0) except for images created using the ImageBase(fileName, hdu, BBox, mode) ctor or ImageBase(ImageBase, BBox) cctor The origin can be reset with setXY0

Definition at line 360 of file ImageBase.h.

360 { return _origin; }

◆ getY0()

template<typename PixelT>
int lsst::afw::image::ImageBase< PixelT >::getY0 ( ) const
inlineinherited

Return the image's row-origin.

This will usually be 0 except for images created using the ImageBase(fileName, hdu, BBox, mode) ctor or ImageBase(ImageBase, BBox) cctor The origin can be reset with setXY0

Definition at line 351 of file ImageBase.h.

351 { return _origin.getY(); }

◆ indexToPosition()

template<typename PixelT>
double lsst::afw::image::ImageBase< PixelT >::indexToPosition ( double  ind,
lsst::afw::image::xOrY const  xy 
) const
inlineinherited

Convert image index to image position.

The LSST indexing convention is:

  • the index of the bottom left pixel is 0,0
  • the position of the center of the bottom left pixel is PixelZeroPos, PixelZeroPos
Returns
image position
Parameters
indimage index
xyIs this a column or row coordinate?

Definition at line 386 of file ImageBase.h.

388  {
389  return ind + PixelZeroPos + (xy == X ? getX0() : getY0());
390  }
int getX0() const
Return the image&#39;s column-origin.
Definition: ImageBase.h:343
int getY0() const
Return the image&#39;s row-origin.
Definition: ImageBase.h:351
const double PixelZeroPos
position of center of pixel 0
Definition: ImageUtils.h:44

◆ isContiguous()

template<typename PixelT>
bool lsst::afw::image::ImageBase< PixelT >::isContiguous ( ) const
inlineprotectedinherited

Definition at line 504 of file ImageBase.h.

504 { return begin() + getWidth() * getHeight() == end(); }
int getHeight() const
Return the number of rows in the image.
Definition: ImageBase.h:335
iterator end() const
Return an STL compliant iterator to the end of the image.
Definition: Image.cc:268
int getWidth() const
Return the number of columns in the image.
Definition: ImageBase.h:333
iterator begin() const
Return an STL compliant iterator to the start of the image.
Definition: Image.cc:263

◆ operator()() [1/4]

template<typename PixelT >
ImageBase< PixelT >::PixelReference lsst::afw::image::ImageBase< PixelT >::operator() ( int  x,
int  y 
)
inherited

Return a reference to the pixel (x, y) in LOCAL coordinates.

Definition at line 184 of file Image.cc.

184  {
185  return const_cast<typename ImageBase<PixelT>::PixelReference>(
186  static_cast<typename ImageBase<PixelT>::PixelConstReference>(_gilView(x, y)[0]));
187 }
ConstReference< PixelT >::type PixelConstReference
A ConstReference to a PixelT.
Definition: ImageBase.h:119
int y
Definition: SpanSet.cc:49
double x
Reference< PixelT >::type PixelReference
A Reference to a PixelT.
Definition: ImageBase.h:117

◆ operator()() [2/4]

template<typename PixelT >
ImageBase< PixelT >::PixelReference lsst::afw::image::ImageBase< PixelT >::operator() ( int  x,
int  y,
CheckIndices const &  check 
)
inherited

Return a reference to the pixel (x, y) in LOCAL coordinates with bounds checking.

Definition at line 190 of file Image.cc.

191  {
192  if (check && (x < 0 || x >= getWidth() || y < 0 || y >= getHeight())) {
193  throw LSST_EXCEPT(pex::exceptions::LengthError,
194  (boost::format("Index (%d, %d) is out of range [0--%d], [0--%d]") % x % y %
195  (getWidth() - 1) % (getHeight() - 1))
196  .str());
197  }
198 
199  return const_cast<typename ImageBase<PixelT>::PixelReference>(
200  static_cast<typename ImageBase<PixelT>::PixelConstReference>(_gilView(x, y)[0]));
201 }
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
Definition: history.py:174
ConstReference< PixelT >::type PixelConstReference
A ConstReference to a PixelT.
Definition: ImageBase.h:119
int getHeight() const
Return the number of rows in the image.
Definition: ImageBase.h:335
int y
Definition: SpanSet.cc:49
double x
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48
int getWidth() const
Return the number of columns in the image.
Definition: ImageBase.h:333
Reference< PixelT >::type PixelReference
A Reference to a PixelT.
Definition: ImageBase.h:117

◆ operator()() [3/4]

template<typename PixelT >
ImageBase< PixelT >::PixelConstReference lsst::afw::image::ImageBase< PixelT >::operator() ( int  x,
int  y 
) const
inherited

Return a const reference to the pixel (x, y) in LOCAL coordinates.

Definition at line 204 of file Image.cc.

204  {
205  return _gilView(x, y)[0];
206 }
int y
Definition: SpanSet.cc:49
double x

◆ operator()() [4/4]

template<typename PixelT >
ImageBase< PixelT >::PixelConstReference lsst::afw::image::ImageBase< PixelT >::operator() ( int  x,
int  y,
CheckIndices const &  check 
) const
inherited

Return a const reference to the pixel (x, y) in LOCAL coordinates with bounds checking.

Definition at line 209 of file Image.cc.

210  {
211  if (check && (x < 0 || x >= getWidth() || y < 0 || y >= getHeight())) {
212  throw LSST_EXCEPT(pex::exceptions::LengthError,
213  (boost::format("Index (%d, %d) is out of range [0--%d], [0--%d]") % x % y %
214  (this->getWidth() - 1) % (this->getHeight() - 1))
215  .str());
216  }
217 
218  return _gilView(x, y)[0];
219 }
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
Definition: history.py:174
int getHeight() const
Return the number of rows in the image.
Definition: ImageBase.h:335
int y
Definition: SpanSet.cc:49
double x
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48
int getWidth() const
Return the number of columns in the image.
Definition: ImageBase.h:333

◆ operator*=() [1/2]

template<typename PixelT>
Image< PixelT > & lsst::afw::image::Image< PixelT >::operator*= ( PixelT const  rhs)

Multiply lhs by scalar rhs.

Definition at line 558 of file Image.cc.

558  {
559  transform_pixels(_getRawView(), _getRawView(), [&rhs](PixelT const& l) -> PixelT { return l * rhs; });
560  return *this;
561 }
_view_t _getRawView() const
Definition: ImageBase.h:502

◆ operator*=() [2/2]

template<typename PixelT>
Image< PixelT > & lsst::afw::image::Image< PixelT >::operator*= ( Image< PixelT > const &  rhs)

Multiply lhs by Image rhs (i.e. pixel-by-pixel multiplication)

Definition at line 564 of file Image.cc.

564  {
565  if (this->getDimensions() != rhs.getDimensions()) {
566  throw LSST_EXCEPT(pex::exceptions::LengthError,
567  (boost::format("Images are of different size, %dx%d v %dx%d") % this->getWidth() %
568  this->getHeight() % rhs.getWidth() % rhs.getHeight())
569  .str());
570  }
571  transform_pixels(_getRawView(), rhs._getRawView(), _getRawView(),
572  [](PixelT const& l, PixelT const& r) -> PixelT { return l * r; });
573  return *this;
574 }
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
Definition: history.py:174
int getHeight() const
Return the number of rows in the image.
Definition: ImageBase.h:335
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48
int getWidth() const
Return the number of columns in the image.
Definition: ImageBase.h:333
lsst::geom::Extent2I getDimensions() const
Return the image&#39;s size; useful for passing to constructors.
Definition: ImageBase.h:393
_view_t _getRawView() const
Definition: ImageBase.h:502

◆ operator+=() [1/3]

template<typename PixelT>
Image< PixelT > & lsst::afw::image::Image< PixelT >::operator+= ( PixelT const  rhs)

Add scalar rhs to lhs.

Definition at line 468 of file Image.cc.

468  {
469  transform_pixels(_getRawView(), _getRawView(), [&rhs](PixelT const& l) -> PixelT { return l + rhs; });
470  return *this;
471 }
_view_t _getRawView() const
Definition: ImageBase.h:502

◆ operator+=() [2/3]

template<typename PixelT>
Image< PixelT > & lsst::afw::image::Image< PixelT >::operator+= ( Image< PixelT > const &  rhs)
virtual

Add Image rhs to lhs.

Definition at line 474 of file Image.cc.

474  {
475  if (this->getDimensions() != rhs.getDimensions()) {
476  throw LSST_EXCEPT(pex::exceptions::LengthError,
477  (boost::format("Images are of different size, %dx%d v %dx%d") % this->getWidth() %
478  this->getHeight() % rhs.getWidth() % rhs.getHeight())
479  .str());
480  }
481  transform_pixels(_getRawView(), rhs._getRawView(), _getRawView(),
482  [](PixelT const& l, PixelT const& r) -> PixelT { return l + r; });
483  return *this;
484 }
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
Definition: history.py:174
int getHeight() const
Return the number of rows in the image.
Definition: ImageBase.h:335
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48
int getWidth() const
Return the number of columns in the image.
Definition: ImageBase.h:333
lsst::geom::Extent2I getDimensions() const
Return the image&#39;s size; useful for passing to constructors.
Definition: ImageBase.h:393
_view_t _getRawView() const
Definition: ImageBase.h:502

◆ operator+=() [3/3]

template<typename PixelT>
Image< PixelT > & lsst::afw::image::Image< PixelT >::operator+= ( lsst::afw::math::Function2< double > const &  function)

Add a Function2(x, y) to an Image.

Parameters
functionfunction to add

Definition at line 487 of file Image.cc.

487  {
488  for (int y = 0; y != this->getHeight(); ++y) {
489  double const yPos = this->indexToPosition(y, Y);
490  double xPos = this->indexToPosition(0, X);
491  for (typename Image<PixelT>::x_iterator ptr = this->row_begin(y), end = this->row_end(y); ptr != end;
492  ++ptr, ++xPos) {
493  *ptr += function(xPos, yPos);
494  }
495  }
496  return *this;
497 }
uint64_t * ptr
Definition: RangeSet.cc:88
int getHeight() const
Return the number of rows in the image.
Definition: ImageBase.h:335
_view_t::x_iterator x_iterator
An iterator for traversing the pixels in a row.
Definition: ImageBase.h:133
int y
Definition: SpanSet.cc:49
x_iterator row_begin(int y) const
Return an x_iterator to the start of the y&#39;th row.
Definition: ImageBase.h:438
iterator end() const
Return an STL compliant iterator to the end of the image.
Definition: Image.cc:268
x_iterator row_end(int y) const
Return an x_iterator to the end of the y&#39;th row.
Definition: ImageBase.h:441
double indexToPosition(double ind, lsst::afw::image::xOrY const xy) const
Convert image index to image position.
Definition: ImageBase.h:386

◆ operator-=() [1/3]

template<typename PixelT>
Image< PixelT > & lsst::afw::image::Image< PixelT >::operator-= ( PixelT const  rhs)

Subtract scalar rhs from lhs.

Definition at line 513 of file Image.cc.

513  {
514  transform_pixels(_getRawView(), _getRawView(), [&rhs](PixelT const& l) -> PixelT { return l - rhs; });
515  return *this;
516 }
_view_t _getRawView() const
Definition: ImageBase.h:502

◆ operator-=() [2/3]

template<typename PixelT>
Image< PixelT > & lsst::afw::image::Image< PixelT >::operator-= ( Image< PixelT > const &  rhs)

Subtract Image rhs from lhs.

Definition at line 519 of file Image.cc.

519  {
520  if (this->getDimensions() != rhs.getDimensions()) {
521  throw LSST_EXCEPT(pex::exceptions::LengthError,
522  (boost::format("Images are of different size, %dx%d v %dx%d") % this->getWidth() %
523  this->getHeight() % rhs.getWidth() % rhs.getHeight())
524  .str());
525  }
526  transform_pixels(_getRawView(), rhs._getRawView(), _getRawView(),
527  [](PixelT const& l, PixelT const& r) -> PixelT { return l - r; });
528  return *this;
529 }
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
Definition: history.py:174
int getHeight() const
Return the number of rows in the image.
Definition: ImageBase.h:335
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48
int getWidth() const
Return the number of columns in the image.
Definition: ImageBase.h:333
lsst::geom::Extent2I getDimensions() const
Return the image&#39;s size; useful for passing to constructors.
Definition: ImageBase.h:393
_view_t _getRawView() const
Definition: ImageBase.h:502

◆ operator-=() [3/3]

template<typename PixelT>
Image< PixelT > & lsst::afw::image::Image< PixelT >::operator-= ( lsst::afw::math::Function2< double > const &  function)

Subtract a Function2(x, y) from an Image.

Parameters
functionfunction to add

Definition at line 545 of file Image.cc.

545  {
546  for (int y = 0; y != this->getHeight(); ++y) {
547  double const yPos = this->indexToPosition(y, Y);
548  double xPos = this->indexToPosition(0, X);
549  for (typename Image<PixelT>::x_iterator ptr = this->row_begin(y), end = this->row_end(y); ptr != end;
550  ++ptr, ++xPos) {
551  *ptr -= function(xPos, yPos);
552  }
553  }
554  return *this;
555 }
uint64_t * ptr
Definition: RangeSet.cc:88
int getHeight() const
Return the number of rows in the image.
Definition: ImageBase.h:335
_view_t::x_iterator x_iterator
An iterator for traversing the pixels in a row.
Definition: ImageBase.h:133
int y
Definition: SpanSet.cc:49
x_iterator row_begin(int y) const
Return an x_iterator to the start of the y&#39;th row.
Definition: ImageBase.h:438
iterator end() const
Return an STL compliant iterator to the end of the image.
Definition: Image.cc:268
x_iterator row_end(int y) const
Return an x_iterator to the end of the y&#39;th row.
Definition: ImageBase.h:441
double indexToPosition(double ind, lsst::afw::image::xOrY const xy) const
Convert image index to image position.
Definition: ImageBase.h:386

◆ operator/=() [1/4]

template<typename PixelT>
Image< PixelT > & lsst::afw::image::Image< PixelT >::operator/= ( PixelT const  rhs)

Divide lhs by scalar rhs.

Note
Floating point types implement this by multiplying by the 1/rhs

Definition at line 590 of file Image.cc.

590  {
591  transform_pixels(_getRawView(), _getRawView(), [&rhs](PixelT const& l) -> PixelT { return l / rhs; });
592  return *this;
593 }
_view_t _getRawView() const
Definition: ImageBase.h:502

◆ operator/=() [2/4]

template<typename PixelT>
Image< PixelT > & lsst::afw::image::Image< PixelT >::operator/= ( Image< PixelT > const &  rhs)

Divide lhs by Image rhs (i.e. pixel-by-pixel division)

Definition at line 612 of file Image.cc.

612  {
613  if (this->getDimensions() != rhs.getDimensions()) {
614  throw LSST_EXCEPT(pex::exceptions::LengthError,
615  (boost::format("Images are of different size, %dx%d v %dx%d") % this->getWidth() %
616  this->getHeight() % rhs.getWidth() % rhs.getHeight())
617  .str());
618  }
619  transform_pixels(_getRawView(), rhs._getRawView(), _getRawView(),
620  [](PixelT const& l, PixelT const& r) -> PixelT { return l / r; });
621  return *this;
622 }
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
Definition: history.py:174
int getHeight() const
Return the number of rows in the image.
Definition: ImageBase.h:335
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48
int getWidth() const
Return the number of columns in the image.
Definition: ImageBase.h:333
lsst::geom::Extent2I getDimensions() const
Return the image&#39;s size; useful for passing to constructors.
Definition: ImageBase.h:393
_view_t _getRawView() const
Definition: ImageBase.h:502

◆ operator/=() [3/4]

template<>
Image< double > & lsst::afw::image::Image< double >::operator/= ( double const  rhs)

Definition at line 598 of file Image.cc.

598  {
599  double const irhs = 1 / rhs;
600  *this *= irhs;
601  return *this;
602 }

◆ operator/=() [4/4]

template<>
Image< float > & lsst::afw::image::Image< float >::operator/= ( float const  rhs)

Definition at line 605 of file Image.cc.

605  {
606  float const irhs = 1 / rhs;
607  *this *= irhs;
608  return *this;
609 }

◆ operator<<=()

template<typename PixelT >
ImageBase< PixelT > & lsst::afw::image::ImageBase< PixelT >::operator<<= ( const ImageBase< PixelT > &  rhs)
inherited

Set the lhs's pixel values to equal the rhs's.

Deprecated:
use assign(rhs) instead

Definition at line 160 of file Image.cc.

160  {
161  assign(rhs);
162  return *this;
163 }
void assign(ImageBase const &rhs, lsst::geom::Box2I const &bbox=lsst::geom::Box2I(), ImageOrigin origin=PARENT)
Copy pixels from another image to a specified subregion of this image.
Definition: Image.cc:166

◆ operator=() [1/3]

template<typename PixelT>
Image< PixelT > & lsst::afw::image::Image< PixelT >::operator= ( const PixelT  rhs)

Set the image's pixels to rhs.

Definition at line 350 of file Image.cc.

350  {
351  this->ImageBase<PixelT>::operator=(rhs);
352 
353  return *this;
354 }
ImageBase & operator=(const ImageBase &rhs)
Shallow assignment operator.
Definition: Image.cc:147

◆ operator=() [2/3]

template<typename PixelT>
Image< PixelT > & lsst::afw::image::Image< PixelT >::operator= ( const Image< PixelT > &  rhs)

Assignment operator.

Note
that this has the effect of making the lhs share pixels with the rhs which may not be what you intended; to copy the pixels, use assign(rhs)
this behaviour is required to make the swig interface work, otherwise I'd declare this function private

Definition at line 357 of file Image.cc.

357  {
358  this->ImageBase<PixelT>::operator=(rhs);
359 
360  return *this;
361 }
ImageBase & operator=(const ImageBase &rhs)
Shallow assignment operator.
Definition: Image.cc:147

◆ operator=() [3/3]

template<typename PixelT>
Image< PixelT > & lsst::afw::image::Image< PixelT >::operator= ( Image< PixelT > &&  rhs)

Definition at line 364 of file Image.cc.

364  {
365  return *this = rhs;
366 }

◆ operator[]() [1/3]

template<typename PixelT>
Image lsst::afw::image::Image< PixelT >::operator[] ( lsst::geom::Box2I const &  bbox) const
inline

Return a subimage corresponding to the given box (interpreted as PARENT coordinates).

Definition at line 231 of file Image.h.

231 { return subset(bbox); }
AmpInfoBoxKey bbox
Definition: Amplifier.cc:117
Image subset(lsst::geom::Box2I const &bbox, ImageOrigin origin=PARENT) const
Return a subimage corresponding to the given box.
Definition: Image.h:226

◆ operator[]() [2/3]

template<typename PixelT>
PixelReference lsst::afw::image::ImageBase< PixelT >::operator[] ( lsst::geom::Point2I const &  index)
inlineinherited

Return a reference to a single pixel in PARENT coordinates (with no bounds check).

Definition at line 327 of file ImageBase.h.

327 { return get(index, PARENT); }

◆ operator[]() [3/3]

template<typename PixelT>
PixelConstReference lsst::afw::image::ImageBase< PixelT >::operator[] ( lsst::geom::Point2I const &  index) const
inlineinherited

Return a reference to a single pixel in PARENT coordinates (with no bounds check).

Definition at line 330 of file ImageBase.h.

330 { return get(index, PARENT); }

◆ PixelCast()

template<typename PixelT>
template<typename SinglePixelT >
static SinglePixel lsst::afw::image::ImageBase< PixelT >::PixelCast ( SinglePixelT  rhs)
inlinestaticinherited

Convert a type to our SinglePixel type.

Definition at line 158 of file ImageBase.h.

158  {
159  return SinglePixel(rhs);
160  }
PixelT SinglePixel
A single Pixel of the same type as those in the ImageBase.
Definition: ImageBase.h:113

◆ positionToIndex()

template<typename PixelT>
std::pair<int, double> lsst::afw::image::ImageBase< PixelT >::positionToIndex ( double const  pos,
lsst::afw::image::xOrY const  xy 
) const
inlineinherited

Convert image position to index (nearest integer and fractional parts)

Returns
std::pair(nearest integer index, fractional part)
Parameters
posimage position
xyIs this a column or row coordinate?

Definition at line 367 of file ImageBase.h.

370  {
371  double const fullIndex = pos - PixelZeroPos - (xy == X ? getX0() : getY0());
372  int const roundedIndex = static_cast<int>(fullIndex + 0.5);
373  double const residual = fullIndex - roundedIndex;
374  return std::pair<int, double>(roundedIndex, residual);
375  }
int getX0() const
Return the image&#39;s column-origin.
Definition: ImageBase.h:343
int getY0() const
Return the image&#39;s row-origin.
Definition: ImageBase.h:351
const double PixelZeroPos
position of center of pixel 0
Definition: ImageUtils.h:44

◆ rbegin()

template<typename PixelT >
ImageBase< PixelT >::reverse_iterator lsst::afw::image::ImageBase< PixelT >::rbegin ( ) const
inherited

Return an STL compliant reverse iterator to the start of the image.

Definition at line 273 of file Image.cc.

273  {
274  return _gilView.rbegin();
275 }

◆ readFits() [1/2]

template<typename PixelT>
static Image lsst::afw::image::Image< PixelT >::readFits ( std::string const &  filename,
int  hdu = fits::DEFAULT_HDU 
)
inlinestatic

Read an Image from a regular FITS file.

Parameters
[in]filenameName of the file to read.
[in]hduNumber of the "header-data unit" to read (where 0 is the Primary HDU). The default value of afw::fits::DEFAULT_HDU is interpreted as "the first HDU with NAXIS != 0".

Definition at line 316 of file Image.h.

316  {
317  return Image<PixelT>(filename, hdu);
318  }

◆ readFits() [2/2]

template<typename PixelT>
static Image lsst::afw::image::Image< PixelT >::readFits ( fits::MemFileManager manager,
int  hdu = fits::DEFAULT_HDU 
)
inlinestatic

Read an Image from a FITS RAM file.

Parameters
[in]managerObject that manages the memory to be read.
[in]hduNumber of the "header-data unit" to read (where 0 is the Primary HDU). The default value of afw::fits::DEFAULT_HDU is interpreted as "the first HDU with NAXIS != 0".

Definition at line 328 of file Image.h.

328  {
329  return Image<PixelT>(manager, hdu);
330  }

◆ rend()

template<typename PixelT >
ImageBase< PixelT >::reverse_iterator lsst::afw::image::ImageBase< PixelT >::rend ( ) const
inherited

Return an STL compliant reverse iterator to the end of the image.

Definition at line 278 of file Image.cc.

278  {
279  return _gilView.rend();
280 }

◆ row_begin()

template<typename PixelT>
x_iterator lsst::afw::image::ImageBase< PixelT >::row_begin ( int  y) const
inlineinherited

Return an x_iterator to the start of the y'th row.

Incrementing an x_iterator moves it across the row

Definition at line 438 of file ImageBase.h.

438 { return _gilView.row_begin(y); }
int y
Definition: SpanSet.cc:49

◆ row_end()

template<typename PixelT>
x_iterator lsst::afw::image::ImageBase< PixelT >::row_end ( int  y) const
inlineinherited

Return an x_iterator to the end of the y'th row.

Definition at line 441 of file ImageBase.h.

441 { return _gilView.row_end(y); }
int y
Definition: SpanSet.cc:49

◆ scaledDivides()

template<typename PixelT>
void lsst::afw::image::Image< PixelT >::scaledDivides ( double const  c,
Image< PixelT > const &  rhs 
)

Divide lhs by Image c*rhs (i.e. pixel-by-pixel division)

Definition at line 625 of file Image.cc.

625  {
626  if (this->getDimensions() != rhs.getDimensions()) {
627  throw LSST_EXCEPT(pex::exceptions::LengthError,
628  (boost::format("Images are of different size, %dx%d v %dx%d") % this->getWidth() %
629  this->getHeight() % rhs.getWidth() % rhs.getHeight())
630  .str());
631  }
632  transform_pixels(
633  _getRawView(), rhs._getRawView(), _getRawView(),
634  [&c](PixelT const& l, PixelT const& r) -> PixelT { return l / static_cast<PixelT>(c * r); });
635 }
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
Definition: history.py:174
int getHeight() const
Return the number of rows in the image.
Definition: ImageBase.h:335
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48
int getWidth() const
Return the number of columns in the image.
Definition: ImageBase.h:333
lsst::geom::Extent2I getDimensions() const
Return the image&#39;s size; useful for passing to constructors.
Definition: ImageBase.h:393
_view_t _getRawView() const
Definition: ImageBase.h:502

◆ scaledMinus()

template<typename PixelT>
void lsst::afw::image::Image< PixelT >::scaledMinus ( double const  c,
Image< PixelT > const &  rhs 
)

Subtract Image c*rhs from lhs.

Definition at line 532 of file Image.cc.

532  {
533  if (this->getDimensions() != rhs.getDimensions()) {
534  throw LSST_EXCEPT(pex::exceptions::LengthError,
535  (boost::format("Images are of different size, %dx%d v %dx%d") % this->getWidth() %
536  this->getHeight() % rhs.getWidth() % rhs.getHeight())
537  .str());
538  }
539  transform_pixels(
540  _getRawView(), rhs._getRawView(), _getRawView(),
541  [&c](PixelT const& l, PixelT const& r) -> PixelT { return l - static_cast<PixelT>(c * r); });
542 }
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
Definition: history.py:174
int getHeight() const
Return the number of rows in the image.
Definition: ImageBase.h:335
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48
int getWidth() const
Return the number of columns in the image.
Definition: ImageBase.h:333
lsst::geom::Extent2I getDimensions() const
Return the image&#39;s size; useful for passing to constructors.
Definition: ImageBase.h:393
_view_t _getRawView() const
Definition: ImageBase.h:502

◆ scaledMultiplies()

template<typename PixelT>
void lsst::afw::image::Image< PixelT >::scaledMultiplies ( double const  c,
Image< PixelT > const &  rhs 
)

Multiply lhs by Image c*rhs (i.e. pixel-by-pixel multiplication)

Definition at line 577 of file Image.cc.

577  {
578  if (this->getDimensions() != rhs.getDimensions()) {
579  throw LSST_EXCEPT(pex::exceptions::LengthError,
580  (boost::format("Images are of different size, %dx%d v %dx%d") % this->getWidth() %
581  this->getHeight() % rhs.getWidth() % rhs.getHeight())
582  .str());
583  }
584  transform_pixels(
585  _getRawView(), rhs._getRawView(), _getRawView(),
586  [&c](PixelT const& l, PixelT const& r) -> PixelT { return l * static_cast<PixelT>(c * r); });
587 }
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
Definition: history.py:174
int getHeight() const
Return the number of rows in the image.
Definition: ImageBase.h:335
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48
int getWidth() const
Return the number of columns in the image.
Definition: ImageBase.h:333
lsst::geom::Extent2I getDimensions() const
Return the image&#39;s size; useful for passing to constructors.
Definition: ImageBase.h:393
_view_t _getRawView() const
Definition: ImageBase.h:502

◆ scaledPlus()

template<typename PixelT>
void lsst::afw::image::Image< PixelT >::scaledPlus ( double const  c,
Image< PixelT > const &  rhs 
)

Add Image c*rhs to lhs.

Definition at line 500 of file Image.cc.

500  {
501  if (this->getDimensions() != rhs.getDimensions()) {
502  throw LSST_EXCEPT(pex::exceptions::LengthError,
503  (boost::format("Images are of different size, %dx%d v %dx%d") % this->getWidth() %
504  this->getHeight() % rhs.getWidth() % rhs.getHeight())
505  .str());
506  }
507  transform_pixels(
508  _getRawView(), rhs._getRawView(), _getRawView(),
509  [&c](PixelT const& l, PixelT const& r) -> PixelT { return l + static_cast<PixelT>(c * r); });
510 }
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
Definition: history.py:174
int getHeight() const
Return the number of rows in the image.
Definition: ImageBase.h:335
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48
int getWidth() const
Return the number of columns in the image.
Definition: ImageBase.h:333
lsst::geom::Extent2I getDimensions() const
Return the image&#39;s size; useful for passing to constructors.
Definition: ImageBase.h:393
_view_t _getRawView() const
Definition: ImageBase.h:502

◆ set0() [1/2]

template<typename PixelT>
instead To be removed after void lsst::afw::image::ImageBase< PixelT >::set0 ( int  x,
int  y,
const PixelT  v 
)
inlineinherited
Deprecated:
Deprecated in 16.0.

To be removed after 20.0.0. Replaced by get(Point2I, ImageOrigin).

Definition at line 308 of file ImageBase.h.

308  {
309  operator()(x - getX0(), y - getY0()) = v;
310  }
int y
Definition: SpanSet.cc:49
int getX0() const
Return the image&#39;s column-origin.
Definition: ImageBase.h:343
double x
int getY0() const
Return the image&#39;s row-origin.
Definition: ImageBase.h:351
PixelReference operator()(int x, int y)
Return a reference to the pixel (x, y) in LOCAL coordinates.
Definition: Image.cc:184

◆ set0() [2/2]

template<typename PixelT>
provides unchecked lookup To be removed after void lsst::afw::image::ImageBase< PixelT >::set0 ( int  x,
int  y,
const PixelT  v,
CheckIndices const &  check 
)
inlineinherited
Deprecated:
Deprecated in 16.0.

To be removed after 20.0.0. Replaced by get(Point2I, ImageOrigin).

Definition at line 315 of file ImageBase.h.

315  {
316  operator()(x - getX0(), y - getY0(), check) = v;
317  }
int y
Definition: SpanSet.cc:49
int getX0() const
Return the image&#39;s column-origin.
Definition: ImageBase.h:343
double x
int getY0() const
Return the image&#39;s row-origin.
Definition: ImageBase.h:351
PixelReference operator()(int x, int y)
Return a reference to the pixel (x, y) in LOCAL coordinates.
Definition: Image.cc:184

◆ setXY0() [1/2]

template<typename PixelT>
void lsst::afw::image::ImageBase< PixelT >::setXY0 ( lsst::geom::Point2I const  origin)
inlineinherited

Set the ImageBase's origin.

The origin is usually set by the constructor, so you shouldn't need this function

Note
There are use cases (e.g. memory overlays) that may want to set these values, but don't do so unless you are an Expert.

Definition at line 471 of file ImageBase.h.

471 { _origin = origin; }

◆ setXY0() [2/2]

template<typename PixelT>
void lsst::afw::image::ImageBase< PixelT >::setXY0 ( int const  x0,
int const  y0 
)
inlineinherited

Set the ImageBase's origin.

The origin is usually set by the constructor, so you shouldn't need this function

Note
There are use cases (e.g. memory overlays) that may want to set these values, but don't do so unless you are an Expert.

Definition at line 480 of file ImageBase.h.

480 { setXY0(lsst::geom::Point2I(x0, y0)); }
void setXY0(lsst::geom::Point2I const origin)
Set the ImageBase&#39;s origin.
Definition: ImageBase.h:471

◆ sqrt()

template<typename PixelT >
void lsst::afw::image::Image< PixelT >::sqrt ( )

Definition at line 462 of file Image.cc.

462  {
463  transform_pixels(_getRawView(), _getRawView(),
464  [](PixelT const& l) -> PixelT { return static_cast<PixelT>(std::sqrt(l)); });
465 }
T sqrt(T... args)
_view_t _getRawView() const
Definition: ImageBase.h:502

◆ subset()

template<typename PixelT>
Image lsst::afw::image::Image< PixelT >::subset ( lsst::geom::Box2I const &  bbox,
ImageOrigin  origin = PARENT 
) const
inline

Return a subimage corresponding to the given box.

Parameters
bboxBounding box of the subimage returned.
originOrigin bbox is rleative to; PARENT accounts for xy0, LOCAL does not.
Returns
A subimage view into this.

This method is wrapped as getitem in Python.

Note
This method permits mutable views to be obtained from const references to images (just as the copy constructor does). This is an intrinsic flaw in Image's design.

Definition at line 226 of file Image.h.

226  {
227  return Image(*this, bbox, origin, false);
228  }
AmpInfoBoxKey bbox
Definition: Amplifier.cc:117
friend class Image
Definition: Image.h:72

◆ swap() [1/2]

template<typename PixelT >
void lsst::afw::image::Image< PixelT >::swap ( Image< PixelT > &  rhs)

Definition at line 449 of file Image.cc.

449  {
450  using std::swap; // See Meyers, Effective C++, Item 25
452  ; // no private variables to swap
453 }
T swap(T... args)
void swap(ImageBase &rhs)
Definition: Image.cc:246

◆ swap() [2/2]

template<typename PixelT >
void lsst::afw::image::ImageBase< PixelT >::swap ( ImageBase< PixelT > &  rhs)
inherited

Definition at line 246 of file Image.cc.

246  {
247  using std::swap; // See Meyers, Effective C++, Item 25
248 
249  swap(_manager, rhs._manager); // just swapping the pointers
250  swap(_gilView, rhs._gilView);
251  swap(_origin, rhs._origin);
252 }
T swap(T... args)
void swap(ImageBase &rhs)
Definition: Image.cc:246

◆ writeFits() [1/6]

template<typename PixelT>
void lsst::afw::image::Image< PixelT >::writeFits ( std::string const &  fileName,
std::shared_ptr< lsst::daf::base::PropertySet const >  metadata = std::shared_ptrlsst::daf::base::PropertySet const >(),
std::string const &  mode = "w" 
) const

Write an image to a regular FITS file.

Parameters
[in]fileNameName of the file to write.
[in]metadataAdditional values to write to the header (may be null).
[in]mode"w"=Create a new file; "a"=Append a new HDU.

◆ writeFits() [2/6]

template<typename PixelT>
void lsst::afw::image::Image< PixelT >::writeFits ( fits::MemFileManager manager,
std::shared_ptr< lsst::daf::base::PropertySet const >  metadata = std::shared_ptrlsst::daf::base::PropertySet const >(),
std::string const &  mode = "w" 
) const

Write an image to a FITS RAM file.

Parameters
[in]managerManager object for the memory block to write to.
[in]metadataAdditional values to write to the header (may be null).
[in]mode"w"=Create a new file; "a"=Append a new HDU.

◆ writeFits() [3/6]

template<typename PixelT>
void lsst::afw::image::Image< PixelT >::writeFits ( fits::Fits fitsfile,
std::shared_ptr< lsst::daf::base::PropertySet const >  metadata = std::shared_ptrlsst::daf::base::PropertySet const >() 
) const

Write an image to an open FITS file object.

Parameters
[in]fitsfileA FITS file already open to the desired HDU.
[in]metadataAdditional values to write to the header (may be null).

◆ writeFits() [4/6]

template<typename PixelT>
void lsst::afw::image::Image< PixelT >::writeFits ( std::string const &  filename,
fits::ImageWriteOptions const &  options,
std::string const &  mode = "w",
std::shared_ptr< daf::base::PropertySet const >  header = nullptr,
std::shared_ptr< Mask< MaskPixel > const >  mask = nullptr 
) const

Write an image to a regular FITS file.

Parameters
[in]filenameName of the file to write.
[in]optionsOptions controlling writing of FITS image.
[in]mode"w"=Create a new file; "a"=Append a new HDU.
[in]headerAdditional values to write to the header (may be null).
[in]maskMask, for calculation of statistics.

◆ writeFits() [5/6]

template<typename PixelT>
void lsst::afw::image::Image< PixelT >::writeFits ( fits::MemFileManager manager,
fits::ImageWriteOptions const &  options,
std::string const &  mode = "w",
std::shared_ptr< daf::base::PropertySet const >  header = nullptr,
std::shared_ptr< Mask< MaskPixel > const >  mask = nullptr 
) const

Write an image to a FITS RAM file.

Parameters
[in]managerManager object for the memory block to write to.
[in]optionsOptions controlling writing of FITS image.
[in]headerAdditional values to write to the header (may be null).
[in]mode"w"=Create a new file; "a"=Append a new HDU.
[in]maskMask, for calculation of statistics.

◆ writeFits() [6/6]

template<typename PixelT>
void lsst::afw::image::Image< PixelT >::writeFits ( fits::Fits fitsfile,
fits::ImageWriteOptions const &  options,
std::shared_ptr< daf::base::PropertySet const >  header = nullptr,
std::shared_ptr< Mask< MaskPixel > const >  mask = nullptr 
) const

Write an image to an open FITS file object.

Parameters
[in]fitsfileA FITS file already open to the desired HDU.
[in]optionsOptions controlling writing of FITS image.
[in]headerAdditional values to write to the header (may be null).
[in]maskMask, for calculation of statistics.

◆ x_at()

template<typename PixelT>
x_iterator lsst::afw::image::ImageBase< PixelT >::x_at ( int  x,
int  y 
) const
inlineinherited

Return an x_iterator to the point (x, y) in the image.

Definition at line 444 of file ImageBase.h.

444 { return _gilView.x_at(x, y); }
int y
Definition: SpanSet.cc:49
double x

◆ xy_at()

template<typename PixelT>
xy_locator lsst::afw::image::ImageBase< PixelT >::xy_at ( int  x,
int  y 
) const
inlineinherited

Return an xy_locator at the point (x, y) in the image.

Locators may be used to access a patch in an image

Definition at line 462 of file ImageBase.h.

462 { return xy_locator(_gilView.xy_at(x, y)); }
int y
Definition: SpanSet.cc:49
double x
_view_t::xy_locator xy_locator
An xy_locator.
Definition: ImageBase.h:121

◆ y_at()

template<typename PixelT>
y_iterator lsst::afw::image::ImageBase< PixelT >::y_at ( int  x,
int  y 
) const
inlineinherited

Return an y_iterator to the point (x, y) in the image.

Definition at line 456 of file ImageBase.h.

456 { return _gilView.y_at(x, y); }
int y
Definition: SpanSet.cc:49
double x

Friends And Related Function Documentation

◆ Image

template<typename PixelT>
template<typename OtherPixelT >
friend class Image
friend

Definition at line 72 of file Image.h.

◆ badPixel()

template<typename ImageT >
ImageT::SinglePixel badPixel ( typename ImageT::Pixel  bad = 0)
related

Return a value indicating a bad pixel for the given Image type.

A quiet NaN is returned for types that support it otherwise bad

Parameters
badThe bad value if NaN isn't supported

Definition at line 77 of file Utils.h.

79  {
80  typedef typename ImageT::SinglePixel SinglePixelT;
83  : bad);
84 }

◆ MaskedImage

template<typename PixelT>
template<typename , typename , typename >
friend class MaskedImage
friend

Definition at line 61 of file Image.h.


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