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

A class to specify a slice of an image. More...

#include <ImageSlice.h>

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

Public Types

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

Public Member Functions

 ImageSlice (Image< PixelT > const &img)
 Constructor for ImageSlice. More...
 
 ~ImageSlice () override
 
ImageSliceType getImageSliceType () const
 
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...
 
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...
 
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)
 
void swap (ImageBase &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 (PixelT 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 (PixelT 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 (PixelT 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...
 
Image< double > & operator/= (double const rhs)
 
Image< float > & operator/= (float const rhs)
 
void scaledDivides (PixelT const c, Image< PixelT > const &rhs)
 Divide lhs by Image c*rhs (i.e. pixel-by-pixel division) More...
 
void sqrt ()
 
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...
 
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 getArea () const
 Return the area of 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...
 
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
 

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)
 

Detailed Description

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

A class to specify a slice of an image.

Definition at line 46 of file ImageSlice.h.

Member Typedef Documentation

◆ Array

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

A mutable ndarray representation of the image.

Definition at line 149 of file ImageBase.h.

◆ const_iterator

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

An STL compliant const iterator.

Definition at line 127 of file ImageBase.h.

◆ const_reverse_iterator

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

An STL compliant const reverse iterator.

Definition at line 131 of file ImageBase.h.

◆ const_x_iterator

template<typename PixelT >
using lsst::afw::image::ImageBase< PixelT >::const_x_iterator = typename _const_view_t::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 >
using lsst::afw::image::ImageBase< PixelT >::const_xy_locator = typename _view_t::xy_locator::const_t
inherited

A const_xy_locator.

Definition at line 123 of file ImageBase.h.

◆ const_y_iterator

template<typename PixelT >
using lsst::afw::image::ImageBase< PixelT >::const_y_iterator = typename _const_view_t::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 >
using lsst::afw::image::ImageBase< PixelT >::ConstArray = typename ndarray::Array<const PixelT, 2, 1>
inherited

An immutable ndarray representation of the image.

Definition at line 151 of file ImageBase.h.

◆ fast_iterator

template<typename PixelT >
using lsst::afw::image::ImageBase< PixelT >::fast_iterator = x_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 >
using lsst::afw::image::Image< PixelT >::image_category = detail::Image_tag
inherited

Definition at line 56 of file Image.h.

◆ iterator

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

An STL compliant iterator.

Definition at line 125 of file ImageBase.h.

◆ Pixel

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

A pixel in this ImageBase.

Definition at line 115 of file ImageBase.h.

◆ PixelConstReference

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

A ConstReference to a PixelT.

Definition at line 119 of file ImageBase.h.

◆ PixelReference

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

A Reference to a PixelT.

Definition at line 117 of file ImageBase.h.

◆ reverse_iterator

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

An STL compliant reverse iterator.

Definition at line 129 of file ImageBase.h.

◆ SinglePixel

template<typename PixelT >
using lsst::afw::image::ImageBase< PixelT >::SinglePixel = PixelT
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 >
using lsst::afw::image::ImageBase< PixelT >::x_iterator = typename _view_t::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 >
using lsst::afw::image::ImageBase< PixelT >::xy_locator = typename _view_t::xy_locator
inherited

An xy_locator.

Definition at line 121 of file ImageBase.h.

◆ xy_x_iterator

template<typename PixelT >
using lsst::afw::image::ImageBase< PixelT >::xy_x_iterator = typename _view_t::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 >
using lsst::afw::image::ImageBase< PixelT >::xy_y_iterator = typename _view_t::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 >
using lsst::afw::image::ImageBase< PixelT >::y_iterator = typename _view_t::y_iterator
inherited

An iterator for traversing the pixels in a column.

Definition at line 143 of file ImageBase.h.

Member Enumeration Documentation

◆ ImageSliceType

template<typename PixelT >
enum lsst::afw::image::ImageSlice::ImageSliceType
Enumerator
ROW 
COLUMN 

Definition at line 48 of file ImageSlice.h.

Constructor & Destructor Documentation

◆ ImageSlice()

template<typename PixelT >
lsst::afw::image::ImageSlice< PixelT >::ImageSlice ( image::Image< PixelT > const &  img)
explicit

Constructor for ImageSlice.

Parameters
imgThe image to represent as a slice.

Definition at line 41 of file ImageSlice.cc.

41  : Image<PixelT>(img), _sliceType(ROW) {
42  // verify the img is a slice (row or column)
43  if (img.getWidth() != 1 && img.getHeight() != 1) {
44  throw LSST_EXCEPT(ex::OutOfRangeError, "Input image must be a slice (width or height == 1)");
45  } else if (img.getWidth() == 1 && img.getHeight() == 1) {
47  "1x1 image ambiguous (could be row or column). "
48  "Perhaps a constant would be better than a slice? ");
49  } else if (img.getWidth() == 1 && img.getHeight() != 1) {
50  _sliceType = COLUMN;
51  } else if (img.getHeight() == 1 && img.getWidth() != 1) {
52  _sliceType = ROW;
53  }
54 
55  // what about 1xn images where a 1x1 row slice is desired? ... use a constant instead of a slice
56  // what about nx1 images wehre a 1x1 column slice is desired? ... use a constant instead of a slice
57 }
#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:294
int getHeight() const
Return the number of rows in the image.
Definition: ImageBase.h:296
Reports invalid arguments.
Definition: Runtime.h:66
Reports attempts to access elements outside a valid range of indices.
Definition: Runtime.h:89

◆ ~ImageSlice()

template<typename PixelT >
lsst::afw::image::ImageSlice< PixelT >::~ImageSlice ( )
inlineoverride

Definition at line 56 of file ImageSlice.h.

56 {}

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 45 of file Image.cc.

46  {
47  if (dimensions.getX() < 0 || dimensions.getY() < 0) {
48  throw LSST_EXCEPT(pex::exceptions::LengthError,
49  str(boost::format("Both width and height must be non-negative: %d, %d") %
50  dimensions.getX() % dimensions.getY()));
51  }
52  if (dimensions.getX() != 0 && dimensions.getY() > std::numeric_limits<int>::max() / dimensions.getX()) {
53  throw LSST_EXCEPT(pex::exceptions::LengthError,
54  str(boost::format("Image dimensions (%d x %d) too large; int overflow detected.") %
55  dimensions.getX() % dimensions.getY()));
56  }
58  ndarray::SimpleManager<PixelT>::allocate(dimensions.getX() * dimensions.getY());
59  manager = r.first;
60  return boost::gil::interleaved_view(dimensions.getX(), dimensions.getY(),
61  (typename _view_t::value_type*)r.second,
62  dimensions.getX() * sizeof(PixelT));
63 }
afw::table::PointKey< int > dimensions
Definition: GaussianPsf.cc:48
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
Definition: history.py:174

◆ _getRawView()

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

Definition at line 465 of file ImageBase.h.

465 { 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 65 of file Image.cc.

67  {
68  if (offset.getX() < 0 || offset.getY() < 0 || offset.getX() + dimensions.getX() > view.width() ||
69  offset.getY() + dimensions.getY() > view.height()) {
70  throw LSST_EXCEPT(
71  pex::exceptions::LengthError,
73  "Box2I(Point2I(%d,%d),lsst::geom::Extent2I(%d,%d)) doesn't fit in image %dx%d") %
74  offset.getX() % offset.getY() % dimensions.getX() % dimensions.getY() % view.width() %
75  view.height())
76  .str());
77  }
78  if (dimensions.getX() == 0 && dimensions.getY() == 0
79  && view.width() == 0 && view.height() == 0) {
80  // Getting a zero-extent subview of a zero-extent view returns itself
81  return view;
82  } else {
83  return boost::gil::subimage_view(view, offset.getX(), offset.getY(), dimensions.getX(),
84  dimensions.getY());
85  }
86 }

◆ 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 153 of file Image.cc.

153  {
154  auto lhsDim = bbox.isEmpty() ? getDimensions() : bbox.getDimensions();
155  if (lhsDim != rhs.getDimensions()) {
156  throw LSST_EXCEPT(pex::exceptions::LengthError,
157  (boost::format("Dimension mismatch: %dx%d v. %dx%d") % lhsDim.getX() %
158  lhsDim.getY() % rhs.getWidth() % rhs.getHeight())
159  .str());
160  }
161  if (bbox.isEmpty()) {
162  copy_pixels(rhs._gilView, _gilView);
163  } else {
164  auto lhsOff = (origin == PARENT) ? bbox.getMin() - _origin : lsst::geom::Extent2I(bbox.getMin());
165  auto lhsGilView = _makeSubView(lhsDim, lhsOff, _gilView);
166  copy_pixels(rhs._gilView, lhsGilView);
167  }
168 }
AmpInfoBoxKey bbox
Definition: Amplifier.cc:117
static _view_t _makeSubView(lsst::geom::Extent2I const &dimensions, lsst::geom::Extent2I const &offset, const _view_t &view)
Definition: Image.cc:65
lsst::geom::Extent2I getDimensions() const
Return the image's size; useful for passing to constructors.
Definition: ImageBase.h:356
Extent< int, 2 > Extent2I
Definition: Extent.h:397

◆ 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 270 of file Image.cc.

270  {
271  return _gilView.at(x, y);
272 }
double x
int y
Definition: SpanSet.cc:48

◆ begin() [1/2]

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

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

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

Definition at line 250 of file Image.cc.

250  {
251  return _gilView.begin();
252 }

◆ 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 275 of file Image.cc.

275  {
276  if (!contiguous) {
277  throw LSST_EXCEPT(pex::exceptions::RuntimeError, "Only contiguous == true makes sense");
278  }
279  if (!this->isContiguous()) {
280  throw LSST_EXCEPT(pex::exceptions::RuntimeError, "Image's pixels are not contiguous");
281  }
282 
283  return row_begin(0);
284 }
x_iterator row_begin(int y) const
Return an x_iterator to the start of the y'th row.
Definition: ImageBase.h:401

◆ 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 413 of file ImageBase.h.

413 { return _gilView.col_begin(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 416 of file ImageBase.h.

416 { return _gilView.col_end(x); }

◆ end() [1/2]

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

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

Definition at line 255 of file Image.cc.

255  {
256  return _gilView.end();
257 }

◆ 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 287 of file Image.cc.

287  {
288  if (!contiguous) {
289  throw LSST_EXCEPT(pex::exceptions::RuntimeError, "Only contiguous == true makes sense");
290  }
291  if (!this->isContiguous()) {
292  throw LSST_EXCEPT(pex::exceptions::RuntimeError, "Image's pixels are not contiguous");
293  }
294 
295  return row_end(getHeight() - 1);
296 }
x_iterator row_end(int y) const
Return an x_iterator to the end of the y'th row.
Definition: ImageBase.h:404

◆ 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 209 of file Image.cc.

210  {
211  int x = index.getX();
212  int y = index.getY();
213  if (origin == PARENT) {
214  x -= getX0();
215  y -= getY0();
216  }
217  return _gilView(x, y)[0];
218 }
int getX0() const
Return the image's column-origin.
Definition: ImageBase.h:306
int getY0() const
Return the image's row-origin.
Definition: ImageBase.h:314

◆ 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 221 of file Image.cc.

222  {
223  int x = index.getX();
224  int y = index.getY();
225  if (origin == PARENT) {
226  x -= getX0();
227  y -= getY0();
228  }
229  return _gilView(x, y)[0];
230 }

◆ getArea()

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

Return the area of the image.

Definition at line 298 of file ImageBase.h.

298 { return getWidth()*getHeight(); }

◆ getArray() [1/2]

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

Definition at line 476 of file ImageBase.h.

476  {
477  int rowStride = 1;
478  PixelT * data = nullptr;
479  if (getArea() > 0) {
480  data = reinterpret_cast<PixelT*>(row_begin(0));
481  }
482  if (getHeight() > 1) {
483  rowStride = reinterpret_cast<PixelT*>(row_begin(1)) - reinterpret_cast<PixelT*>(row_begin(0));
484  }
485  return ndarray::external(data,
486  ndarray::makeVector(getHeight(), getWidth()), ndarray::makeVector(rowStride, 1),
487  this->_manager);
488 }
char * data
Definition: BaseRecord.cc:61
int getArea() const
Return the area of the image.
Definition: ImageBase.h:298

◆ getArray() [2/2]

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

Definition at line 491 of file ImageBase.h.

491  {
492  int rowStride = 1;
493  PixelT * data = nullptr;
494  if (getArea() > 0) {
495  data = reinterpret_cast<PixelT*>(row_begin(0));
496  }
497  if (getHeight() > 1) {
498  rowStride = reinterpret_cast<PixelT*>(row_begin(1)) - reinterpret_cast<PixelT*>(row_begin(0));
499  }
500  return ndarray::external(data,
501  ndarray::makeVector(getHeight(), getWidth()), ndarray::makeVector(rowStride, 1),
502  this->_manager);
503 }

◆ getBBox()

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

Definition at line 445 of file ImageBase.h.

445  {
446  if (origin == PARENT) {
447  return lsst::geom::Box2I(_origin, getDimensions());
448  } else
450  }
An integer coordinate rectangle.
Definition: Box.h:55

◆ 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 356 of file ImageBase.h.

356 { return lsst::geom::Extent2I(getWidth(), getHeight()); }

◆ getHeight()

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

Return the number of rows in the image.

Definition at line 296 of file ImageBase.h.

296 { return _gilView.height(); }

◆ getImageSliceType()

template<typename PixelT >
ImageSliceType lsst::afw::image::ImageSlice< PixelT >::getImageSliceType ( ) const
inline

Definition at line 57 of file ImageSlice.h.

57 { return _sliceType; }

◆ getWidth()

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

Return the number of columns in the image.

Definition at line 294 of file ImageBase.h.

294 { 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 306 of file ImageBase.h.

306 { 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 323 of file ImageBase.h.

323 { 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 314 of file ImageBase.h.

314 { 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 349 of file ImageBase.h.

351  {
352  return ind + PixelZeroPos + (xy == X ? getX0() : getY0());
353  }
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 467 of file ImageBase.h.

467 { return begin() + getWidth() * getHeight() == end(); }
iterator end() const
Return an STL compliant iterator to the end of the image.
Definition: Image.cc:255
iterator begin() const
Return an STL compliant iterator to the start of the image.
Definition: Image.cc:250

◆ 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 171 of file Image.cc.

171  {
172  return const_cast<typename ImageBase<PixelT>::PixelReference>(
173  static_cast<typename ImageBase<PixelT>::PixelConstReference>(_gilView(x, y)[0]));
174 }
typename Reference< PixelT >::type PixelReference
A Reference to a PixelT.
Definition: ImageBase.h:117
typename ConstReference< PixelT >::type PixelConstReference
A ConstReference to a PixelT.
Definition: ImageBase.h:119

◆ operator()() [2/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 191 of file Image.cc.

191  {
192  return _gilView(x, y)[0];
193 }

◆ operator()() [3/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 177 of file Image.cc.

178  {
179  if (check && (x < 0 || x >= getWidth() || y < 0 || y >= getHeight())) {
180  throw LSST_EXCEPT(pex::exceptions::LengthError,
181  (boost::format("Index (%d, %d) is out of range [0--%d], [0--%d]") % x % y %
182  (getWidth() - 1) % (getHeight() - 1))
183  .str());
184  }
185 
186  return const_cast<typename ImageBase<PixelT>::PixelReference>(
187  static_cast<typename ImageBase<PixelT>::PixelConstReference>(_gilView(x, y)[0]));
188 }

◆ 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 196 of file Image.cc.

197  {
198  if (check && (x < 0 || x >= getWidth() || y < 0 || y >= getHeight())) {
199  throw LSST_EXCEPT(pex::exceptions::LengthError,
200  (boost::format("Index (%d, %d) is out of range [0--%d], [0--%d]") % x % y %
201  (this->getWidth() - 1) % (this->getHeight() - 1))
202  .str());
203  }
204 
205  return _gilView(x, y)[0];
206 }

◆ operator*=() [1/2]

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

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

Definition at line 550 of file Image.cc.

550  {
551  if (this->getDimensions() != rhs.getDimensions()) {
552  throw LSST_EXCEPT(pex::exceptions::LengthError,
553  (boost::format("Images are of different size, %dx%d v %dx%d") % this->getWidth() %
554  this->getHeight() % rhs.getWidth() % rhs.getHeight())
555  .str());
556  }
557  transform_pixels(_getRawView(), rhs._getRawView(), _getRawView(),
558  [](PixelT const& l, PixelT const& r) -> PixelT { return l * r; });
559  return *this;
560 }
_view_t _getRawView() const
Definition: ImageBase.h:465

◆ operator*=() [2/2]

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

Multiply lhs by scalar rhs.

Definition at line 544 of file Image.cc.

544  {
545  transform_pixels(_getRawView(), _getRawView(), [&rhs](PixelT const& l) -> PixelT { return l * rhs; });
546  return *this;
547 }

◆ operator+=() [1/3]

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

Add Image rhs to lhs.

Definition at line 460 of file Image.cc.

460  {
461  if (this->getDimensions() != rhs.getDimensions()) {
462  throw LSST_EXCEPT(pex::exceptions::LengthError,
463  (boost::format("Images are of different size, %dx%d v %dx%d") % this->getWidth() %
464  this->getHeight() % rhs.getWidth() % rhs.getHeight())
465  .str());
466  }
467  transform_pixels(_getRawView(), rhs._getRawView(), _getRawView(),
468  [](PixelT const& l, PixelT const& r) -> PixelT { return l + r; });
469  return *this;
470 }

◆ operator+=() [2/3]

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

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

Parameters
functionfunction to add

Definition at line 473 of file Image.cc.

473  {
474  for (int y = 0; y != this->getHeight(); ++y) {
475  double const yPos = this->indexToPosition(y, Y);
476  double xPos = this->indexToPosition(0, X);
477  for (typename Image<PixelT>::x_iterator ptr = this->row_begin(y), end = this->row_end(y); ptr != end;
478  ++ptr, ++xPos) {
479  *ptr += function(xPos, yPos);
480  }
481  }
482  return *this;
483 }
uint64_t * ptr
Definition: RangeSet.cc:88
double indexToPosition(double ind, lsst::afw::image::xOrY const xy) const
Convert image index to image position.
Definition: ImageBase.h:349
typename _view_t::x_iterator x_iterator
An iterator for traversing the pixels in a row.
Definition: ImageBase.h:133

◆ operator+=() [3/3]

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

Add scalar rhs to lhs.

Definition at line 454 of file Image.cc.

454  {
455  transform_pixels(_getRawView(), _getRawView(), [&rhs](PixelT const& l) -> PixelT { return l + rhs; });
456  return *this;
457 }

◆ operator-=() [1/3]

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

Subtract Image rhs from lhs.

Definition at line 505 of file Image.cc.

505  {
506  if (this->getDimensions() != rhs.getDimensions()) {
507  throw LSST_EXCEPT(pex::exceptions::LengthError,
508  (boost::format("Images are of different size, %dx%d v %dx%d") % this->getWidth() %
509  this->getHeight() % rhs.getWidth() % rhs.getHeight())
510  .str());
511  }
512  transform_pixels(_getRawView(), rhs._getRawView(), _getRawView(),
513  [](PixelT const& l, PixelT const& r) -> PixelT { return l - r; });
514  return *this;
515 }

◆ operator-=() [2/3]

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

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

Parameters
functionfunction to add

Definition at line 531 of file Image.cc.

531  {
532  for (int y = 0; y != this->getHeight(); ++y) {
533  double const yPos = this->indexToPosition(y, Y);
534  double xPos = this->indexToPosition(0, X);
535  for (typename Image<PixelT>::x_iterator ptr = this->row_begin(y), end = this->row_end(y); ptr != end;
536  ++ptr, ++xPos) {
537  *ptr -= function(xPos, yPos);
538  }
539  }
540  return *this;
541 }

◆ operator-=() [3/3]

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

Subtract scalar rhs from lhs.

Definition at line 499 of file Image.cc.

499  {
500  transform_pixels(_getRawView(), _getRawView(), [&rhs](PixelT const& l) -> PixelT { return l - rhs; });
501  return *this;
502 }

◆ operator/=() [1/4]

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

Definition at line 584 of file Image.cc.

584  {
585  double const irhs = 1 / rhs;
586  *this *= irhs;
587  return *this;
588 }

◆ operator/=() [2/4]

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

Definition at line 591 of file Image.cc.

591  {
592  float const irhs = 1 / rhs;
593  *this *= irhs;
594  return *this;
595 }

◆ operator/=() [3/4]

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

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

Definition at line 598 of file Image.cc.

598  {
599  if (this->getDimensions() != rhs.getDimensions()) {
600  throw LSST_EXCEPT(pex::exceptions::LengthError,
601  (boost::format("Images are of different size, %dx%d v %dx%d") % this->getWidth() %
602  this->getHeight() % rhs.getWidth() % rhs.getHeight())
603  .str());
604  }
605  transform_pixels(_getRawView(), rhs._getRawView(), _getRawView(),
606  [](PixelT const& l, PixelT const& r) -> PixelT { return l / r; });
607  return *this;
608 }

◆ operator/=() [4/4]

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

Divide lhs by scalar rhs.

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

Definition at line 576 of file Image.cc.

576  {
577  transform_pixels(_getRawView(), _getRawView(), [&rhs](PixelT const& l) -> PixelT { return l / rhs; });
578  return *this;
579 }

◆ operator[]() [1/3]

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

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

Definition at line 224 of file Image.h.

224 { return subset(bbox); }
Image subset(lsst::geom::Box2I const &bbox, ImageOrigin origin=PARENT) const
Return a subimage corresponding to the given box.
Definition: Image.h:219

◆ 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 288 of file ImageBase.h.

288 { return get(index, PARENT); }
PixelReference get(lsst::geom::Point2I const &index, ImageOrigin origin)
Return a reference to a single pixel (with no bounds check).
Definition: Image.cc:209

◆ 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 291 of file ImageBase.h.

291 { 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 330 of file ImageBase.h.

333  {
334  double const fullIndex = pos - PixelZeroPos - (xy == X ? getX0() : getY0());
335  int const roundedIndex = static_cast<int>(fullIndex + 0.5);
336  double const residual = fullIndex - roundedIndex;
337  return std::pair<int, double>(roundedIndex, residual);
338  }

◆ rbegin()

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

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

Definition at line 260 of file Image.cc.

260  {
261  return _gilView.rbegin();
262 }

◆ readFits() [1/2]

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

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 321 of file Image.h.

321  {
322  return Image<PixelT>(manager, hdu);
323  }

◆ readFits() [2/2]

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

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 309 of file Image.h.

309  {
310  return Image<PixelT>(filename, hdu);
311  }

◆ rend()

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

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

Definition at line 265 of file Image.cc.

265  {
266  return _gilView.rend();
267 }

◆ 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 401 of file ImageBase.h.

401 { return _gilView.row_begin(y); }

◆ 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 404 of file ImageBase.h.

404 { return _gilView.row_end(y); }

◆ scaledDivides()

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

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

Definition at line 611 of file Image.cc.

611  {
612  if (this->getDimensions() != rhs.getDimensions()) {
613  throw LSST_EXCEPT(pex::exceptions::LengthError,
614  (boost::format("Images are of different size, %dx%d v %dx%d") % this->getWidth() %
615  this->getHeight() % rhs.getWidth() % rhs.getHeight())
616  .str());
617  }
618  transform_pixels(
619  _getRawView(), rhs._getRawView(), _getRawView(),
620  [&c](PixelT const& l, PixelT const& r) -> PixelT { return l / (c * r); });
621 }

◆ scaledMinus()

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

Subtract Image c*rhs from lhs.

Definition at line 518 of file Image.cc.

518  {
519  if (this->getDimensions() != rhs.getDimensions()) {
520  throw LSST_EXCEPT(pex::exceptions::LengthError,
521  (boost::format("Images are of different size, %dx%d v %dx%d") % this->getWidth() %
522  this->getHeight() % rhs.getWidth() % rhs.getHeight())
523  .str());
524  }
525  transform_pixels(
526  _getRawView(), rhs._getRawView(), _getRawView(),
527  [&c](PixelT const& l, PixelT const& r) -> PixelT { return l - (c * r); });
528 }

◆ scaledMultiplies()

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

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

Definition at line 563 of file Image.cc.

563  {
564  if (this->getDimensions() != rhs.getDimensions()) {
565  throw LSST_EXCEPT(pex::exceptions::LengthError,
566  (boost::format("Images are of different size, %dx%d v %dx%d") % this->getWidth() %
567  this->getHeight() % rhs.getWidth() % rhs.getHeight())
568  .str());
569  }
570  transform_pixels(
571  _getRawView(), rhs._getRawView(), _getRawView(),
572  [&c](PixelT const& l, PixelT const& r) -> PixelT { return l * (c * r); });
573 }

◆ scaledPlus()

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

Add Image c*rhs to lhs.

Definition at line 486 of file Image.cc.

486  {
487  if (this->getDimensions() != rhs.getDimensions()) {
488  throw LSST_EXCEPT(pex::exceptions::LengthError,
489  (boost::format("Images are of different size, %dx%d v %dx%d") % this->getWidth() %
490  this->getHeight() % rhs.getWidth() % rhs.getHeight())
491  .str());
492  }
493  transform_pixels(
494  _getRawView(), rhs._getRawView(), _getRawView(),
495  [&c](PixelT const& l, PixelT const& r) -> PixelT { return l + (c * r); });
496 }

◆ setXY0() [1/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 443 of file ImageBase.h.

443 { setXY0(lsst::geom::Point2I(x0, y0)); }
void setXY0(lsst::geom::Point2I const origin)
Set the ImageBase's origin.
Definition: ImageBase.h:434

◆ setXY0() [2/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 434 of file ImageBase.h.

434 { _origin = origin; }

◆ sqrt()

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

Definition at line 448 of file Image.cc.

448  {
449  transform_pixels(_getRawView(), _getRawView(),
450  [](PixelT const& l) -> PixelT { return static_cast<PixelT>(std::sqrt(l)); });
451 }
T sqrt(T... args)

◆ subset()

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

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 219 of file Image.h.

219  {
220  return Image(*this, bbox, origin, false);
221  }
friend class Image
Definition: Image.h:65

◆ swap() [1/2]

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

Definition at line 436 of file Image.cc.

436  {
437  using std::swap; // See Meyers, Effective C++, Item 25
439 }
void swap(ImageBase &rhs)
Definition: Image.cc:233
T swap(T... args)

◆ swap() [2/2]

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

Definition at line 233 of file Image.cc.

233  {
234  using std::swap; // See Meyers, Effective C++, Item 25
235 
236  swap(_manager, rhs._manager); // just swapping the pointers
237  swap(_gilView, rhs._gilView);
238  swap(_origin, rhs._origin);
239 }

◆ writeFits() [1/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
inherited

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.

◆ writeFits() [2/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
inherited

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() [3/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
inherited

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() [4/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
inherited

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() [5/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
inherited

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() [6/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
inherited

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.

◆ 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 407 of file ImageBase.h.

407 { return _gilView.x_at(x, y); }

◆ 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 425 of file ImageBase.h.

425 { return xy_locator(_gilView.xy_at(x, y)); }
typename _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 419 of file ImageBase.h.

419 { return _gilView.y_at(x, y); }

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