LSSTApplications  18.1.0
LSSTDataManagementBasePackage
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Friends | List of all members
lsst::afw::image::ImageBase< PixelT > Class Template Reference

The base class for all image classed (Image, Mask, MaskedImage, ...) More...

#include <ImageBase.h>

Inheritance diagram for lsst::afw::image::ImageBase< PixelT >:
lsst::daf::base::Citizen lsst::afw::image::Image< lsst::afw::math::Kernel::Pixel > lsst::afw::image::Image< Pixel > lsst::afw::image::Image< PixelT > lsst::afw::image::ImageSlice< PixelT >

Public Types

typedef detail::basic_tag image_category
 trait class to identify type of image More...
 
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...
 
enum  { magicSentinel = 0xdeadbeef }
 
typedef unsigned long memId
 Type of the block's ID. More...
 
typedef memId(* memNewCallback) (const memId cid)
 A function used to register a callback. More...
 
typedef memId(* memCallback) (const Citizen *ptr)
 

Public Member Functions

 ImageBase (const lsst::geom::Extent2I &dimensions=lsst::geom::Extent2I())
 Allocator Constructor. More...
 
 ImageBase (const lsst::geom::Box2I &bbox)
 Allocator Constructor. More...
 
 ImageBase (const ImageBase &src, const bool deep=false)
 Copy constructor. More...
 
 ImageBase (ImageBase &&src)
 
 ImageBase (const ImageBase &src, const lsst::geom::Box2I &bbox, const ImageOrigin origin=PARENT, const bool deep=false)
 Copy constructor to make a copy of part of an image. More...
 
template<typename OtherPixelT >
 ImageBase (const ImageBase< OtherPixelT > &rhs, const bool deep)
 generalised copy constructor More...
 
 ImageBase (Array const &array, bool deep=false, lsst::geom::Point2I const &xy0=lsst::geom::Point2I())
 Construction from ndarray::Array and NumPy. More...
 
virtual ~ImageBase ()=default
 
ImageBaseoperator= (const ImageBase &rhs)
 Shallow assignment operator. More...
 
ImageBaseoperator= (ImageBase &&rhs)
 
ImageBaseoperator= (const PixelT rhs)
 Set the image's pixels to rhs. More...
 
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 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...
 
iterator end () const
 Return an STL compliant iterator to the end of the image. 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...
 
fast_iterator begin (bool contiguous) const
 Return a fast STL compliant iterator to the start of the image which must be contiguous. More...
 
fast_iterator end (bool contiguous) const
 Return a fast STL compliant iterator to the end of the image which must be contiguous. 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
 
std::string repr () const
 Return a string representation of a Citizen. More...
 
void markPersistent (void)
 Mark a Citizen as persistent and not destroyed until process end. More...
 
memId getId () const
 Return the Citizen's ID. More...
 
PixelReference operator() (int x, int y)
 
PixelReference operator() (int x, int y, CheckIndices const &)
 Return a reference to the pixel (x, y) with bounds checking. More...
 
PixelConstReference operator() (int x, int y) const
 Return a const reference to the pixel (x, y) More...
 
PixelConstReference operator() (int x, int y, CheckIndices const &) const
 Return a const reference to the pixel (x, y) with bounds checking. More...
 
PixelConstReference get0 (int x, int y) const
 
PixelConstReference get0 (int x, int y, CheckIndices const &check) const
 
void set0 (int x, int y, const PixelT v)
 
void set0 (int x, int y, const PixelT v, CheckIndices const &check)
 

Static Public Member Functions

template<typename SinglePixelT >
static SinglePixel PixelCast (SinglePixelT rhs)
 Convert a type to our SinglePixel type. More...
 
static bool hasBeenCorrupted ()
 Check all allocated blocks for corruption. More...
 
static memId getNextMemId ()
 Return the memId of the next object to be allocated. More...
 
static int init ()
 Called once when the memory system is being initialised. More...
 
Census

Provide a list of current Citizens

static int census (int, memId startingMemId=0)
 How many active Citizens are there? More...
 
static void census (std::ostream &stream, memId startingMemId=0)
 Print a list of all active Citizens to stream, sorted by ID. More...
 
static const std::vector< const Citizen * > * census ()
 Return a (newly allocated) std::vector of active Citizens sorted by ID. More...
 
callbackIDs

Set callback Ids.

The old Id is returned

static memId setNewCallbackId (memId id)
 Call the NewCallback when block is allocated. More...
 
static memId setDeleteCallbackId (memId id)
 Call the current DeleteCallback when block is deleted. More...
 
callbacks

Set the New/Delete callback functions; in each case the previously installed callback is returned.

These callback functions return a value which is Added to the previously registered id.

The default callback functions are called default{New,Delete}Callback; you may want to set a break point in these callbacks from your favourite debugger

static memNewCallback setNewCallback (memNewCallback func)
 Set the NewCallback function. More...
 
static memCallback setDeleteCallback (memCallback func)
 Set the DeleteCallback function. More...
 
static memCallback setCorruptionCallback (memCallback func)
 Set the CorruptionCallback function. 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 OtherPixelT >
class ImageBase
 
template<typename >
class DecoratedImage
 
template<typename , typename , typename >
class MaskedImage
 

Detailed Description

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

The base class for all image classed (Image, Mask, MaskedImage, ...)

Definition at line 103 of file ImageBase.h.

Member Typedef Documentation

◆ Array

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

A mutable ndarray representation of the image.

Definition at line 150 of file ImageBase.h.

◆ const_iterator

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

An STL compliant const iterator.

Definition at line 128 of file ImageBase.h.

◆ const_reverse_iterator

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

An STL compliant const reverse iterator.

Definition at line 132 of file ImageBase.h.

◆ const_x_iterator

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

A const iterator for traversing the pixels in a row.

Definition at line 142 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

A const_xy_locator.

Definition at line 124 of file ImageBase.h.

◆ const_y_iterator

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

A const iterator for traversing the pixels in a column.

Definition at line 148 of file ImageBase.h.

◆ ConstArray

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

An immutable ndarray representation of the image.

Definition at line 152 of file ImageBase.h.

◆ fast_iterator

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

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

The order of pixel access is undefined

Definition at line 138 of file ImageBase.h.

◆ image_category

template<typename PixelT>
typedef detail::basic_tag lsst::afw::image::ImageBase< PixelT >::image_category

trait class to identify type of image

Definition at line 111 of file ImageBase.h.

◆ iterator

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

An STL compliant iterator.

Definition at line 126 of file ImageBase.h.

◆ memCallback

typedef memId(* lsst::daf::base::Citizen::memCallback) (const Citizen *ptr)
inherited

Definition at line 61 of file Citizen.h.

◆ memId

typedef unsigned long lsst::daf::base::Citizen::memId
inherited

Type of the block's ID.

Definition at line 58 of file Citizen.h.

◆ memNewCallback

typedef memId(* lsst::daf::base::Citizen::memNewCallback) (const memId cid)
inherited

A function used to register a callback.

Definition at line 60 of file Citizen.h.

◆ Pixel

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

A pixel in this ImageBase.

Definition at line 116 of file ImageBase.h.

◆ PixelConstReference

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

A ConstReference to a PixelT.

Definition at line 120 of file ImageBase.h.

◆ PixelReference

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

A Reference to a PixelT.

Definition at line 118 of file ImageBase.h.

◆ reverse_iterator

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

An STL compliant reverse iterator.

Definition at line 130 of file ImageBase.h.

◆ SinglePixel

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

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

Definition at line 114 of file ImageBase.h.

◆ x_iterator

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

An iterator for traversing the pixels in a row.

Definition at line 134 of file ImageBase.h.

◆ xy_locator

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

An xy_locator.

Definition at line 122 of file ImageBase.h.

◆ xy_x_iterator

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

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

Definition at line 140 of file ImageBase.h.

◆ xy_y_iterator

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

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

Definition at line 146 of file ImageBase.h.

◆ y_iterator

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

An iterator for traversing the pixels in a column.

Definition at line 144 of file ImageBase.h.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
inherited
Enumerator
magicSentinel 

Definition at line 88 of file Citizen.h.

Constructor & Destructor Documentation

◆ ImageBase() [1/7]

template<typename PixelT >
lsst::afw::image::ImageBase< PixelT >::ImageBase ( const lsst::geom::Extent2I dimensions = lsst::geom::Extent2I())
explicit

Allocator Constructor.

allocate a new image with the specified dimensions. Sets origin at (0,0)

Definition at line 96 of file Image.cc.

97  : daf::base::Citizen(typeid(this)),
98  _origin(0, 0),
99  _manager(),
100  _gilView(_allocateView(dimensions, _manager)) {}
static _view_t _allocateView(lsst::geom::Extent2I const &dimensions, Manager::Ptr &manager)
Definition: Image.cc:58

◆ ImageBase() [2/7]

template<typename PixelT >
lsst::afw::image::ImageBase< PixelT >::ImageBase ( const lsst::geom::Box2I bbox)
explicit

Allocator Constructor.

allocate a new image with the specified dimensions and origin

Definition at line 103 of file Image.cc.

104  : daf::base::Citizen(typeid(this)),
105  _origin(bbox.getMin()),
106  _manager(),
107  _gilView(_allocateView(bbox.getDimensions(), _manager)) {}
Extent2I const getDimensions() const noexcept
Definition: Box.h:173
Point2I const getMin() const noexcept
Definition: Box.h:143
static _view_t _allocateView(lsst::geom::Extent2I const &dimensions, Manager::Ptr &manager)
Definition: Image.cc:58

◆ ImageBase() [3/7]

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

Copy constructor.

Parameters
srcRight-hand-side image
deepIf false, new ImageBase shares storage with src; 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 110 of file Image.cc.

113  : daf::base::Citizen(typeid(this)),
114  _origin(rhs._origin),
115  _manager(rhs._manager),
116  _gilView(rhs._gilView) {
117  if (deep) {
118  ImageBase tmp(getBBox());
119  tmp.assign(*this); // now copy the pixels
120  swap(tmp);
121  }
122 }
lsst::geom::Box2I getBBox(ImageOrigin origin=PARENT) const
Definition: ImageBase.h:463
void swap(ImageBase &rhs)
Definition: Image.cc:258

◆ ImageBase() [4/7]

template<typename PixelT >
lsst::afw::image::ImageBase< PixelT >::ImageBase ( ImageBase< PixelT > &&  src)

Definition at line 125 of file Image.cc.

125 : ImageBase(rhs, false) {}

◆ ImageBase() [5/7]

template<typename PixelT >
lsst::afw::image::ImageBase< PixelT >::ImageBase ( const ImageBase< PixelT > &  src,
const lsst::geom::Box2I bbox,
const ImageOrigin  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
srcRight-hand-side image
bboxSpecify desired region
originSpecify the coordinate system of the bbox
deepIf false, new ImageBase shares storage with src; 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 128 of file Image.cc.

132  : daf::base::Citizen(typeid(this)),
133  _origin((origin == PARENT) ? bbox.getMin() : rhs._origin + lsst::geom::Extent2I(bbox.getMin())),
134  _manager(rhs._manager), // reference counted pointer, don't copy pixels
135  _gilView(_makeSubView(bbox.getDimensions(), _origin - rhs._origin, rhs._gilView)) {
136  if (deep) {
137  ImageBase tmp(getBBox());
138  tmp.assign(*this); // now copy the pixels
139  swap(tmp);
140  }
141 }
Extent2I const getDimensions() const noexcept
Definition: Box.h:173
Point2I const getMin() const noexcept
Definition: Box.h:143
lsst::geom::Box2I getBBox(ImageOrigin origin=PARENT) const
Definition: ImageBase.h:463
void swap(ImageBase &rhs)
Definition: Image.cc:258
Extent< int, 2 > Extent2I
Definition: Extent.h:397
static _view_t _makeSubView(lsst::geom::Extent2I const &dimensions, lsst::geom::Extent2I const &offset, const _view_t &view)
Definition: Image.cc:78

◆ ImageBase() [6/7]

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

generalised copy constructor

defined here in the header so that the compiler can instantiate N(N-1) conversions between N ImageBase types.

Definition at line 218 of file ImageBase.h.

218  : lsst::daf::base::Citizen(typeid(this)) {
219  if (!deep) {
221  "Only deep copies are permitted for ImageBases with different pixel types");
222  }
223 
224  ImageBase<PixelT> tmp(rhs.getBBox());
225  copy_and_convert_pixels(rhs._gilView, tmp._gilView); // from boost::gil
226 
227  using std::swap; // See Meyers, Effective C++, Item 25
228  ImageBase<PixelT>::swap(tmp); // See Meyers, Effective C++, Items 11 and 43
229  }
T swap(T... args)
void swap(ImageBase &rhs)
Definition: Image.cc:258
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48
Reports invalid arguments.
Definition: Runtime.h:66
Citizen is a class that should be among all LSST classes base classes, and handles basic memory manag...
Definition: Citizen.h:55

◆ ImageBase() [7/7]

template<typename PixelT >
lsst::afw::image::ImageBase< PixelT >::ImageBase ( Array const &  array,
bool  deep = false,
lsst::geom::Point2I const &  xy0 = lsst::geom::Point2I() 
)
explicit

Construction from ndarray::Array and NumPy.

Note
ndarray and NumPy indexes are ordered (y,x), but Image indices are ordered (x,y).

Unless deep is true, the new image will share memory with the array if the the dimension is contiguous in memory. If the last dimension is not contiguous, the array will be deep-copied in Python, but the constructor will fail to compile in pure C++.

Definition at line 144 of file Image.cc.

145  : daf::base::Citizen(typeid(this)),
146  _origin(xy0),
147  _manager(array.getManager()),
148  _gilView(boost::gil::interleaved_view(array.template getSize<1>(), array.template getSize<0>(),
149  (typename _view_t::value_type*)array.getData(),
150  array.template getStride<0>() * sizeof(PixelT))) {
151  if (deep) {
152  ImageBase tmp(*this, true);
153  swap(tmp);
154  }
155 }
void swap(ImageBase &rhs)
Definition: Image.cc:258

◆ ~ImageBase()

template<typename PixelT>
virtual lsst::afw::image::ImageBase< PixelT >::~ImageBase ( )
virtualdefault

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 
)
staticprotected

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 }
afw::table::PointKey< int > dimensions
Definition: GaussianPsf.cc:49
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
Definition: history.py:168
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
inlineprotected

Definition at line 483 of file ImageBase.h.

483 { 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 
)
staticprotected

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 }
afw::table::PointKey< int > dimensions
Definition: GaussianPsf.cc:49
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
Definition: history.py:168
#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 
)

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

177  {
178  auto lhsDim = bbox.isEmpty() ? getDimensions() : bbox.getDimensions();
179  if (lhsDim != rhs.getDimensions()) {
180  throw LSST_EXCEPT(pex::exceptions::LengthError,
181  (boost::format("Dimension mismatch: %dx%d v. %dx%d") % lhsDim.getX() %
182  lhsDim.getY() % rhs.getWidth() % rhs.getHeight())
183  .str());
184  }
185  if (bbox.isEmpty()) {
186  copy_pixels(rhs._gilView, _gilView);
187  } else {
188  auto lhsOff = (origin == PARENT) ? bbox.getMin() - _origin : lsst::geom::Extent2I(bbox.getMin());
189  auto lhsGilView = _makeSubView(lhsDim, lhsOff, _gilView);
190  copy_pixels(rhs._gilView, lhsGilView);
191  }
192 }
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
Definition: history.py:168
table::Box2IKey bbox
Definition: Detector.cc:169
#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:374
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

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

Definition at line 295 of file Image.cc.

295  {
296  return _gilView.at(x, y);
297 }
int y
Definition: SpanSet.cc:49
double x

◆ begin() [1/2]

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

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

275  {
276  return _gilView.begin();
277 }

◆ begin() [2/2]

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

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 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_begin(0);
309 }
x_iterator row_begin(int y) const
Return an x_iterator to the start of the y&#39;th row.
Definition: ImageBase.h:419
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
Definition: Exception.h:48

◆ census() [1/3]

int lsst::daf::base::Citizen::census ( int  ,
memId  startingMemId = 0 
)
staticinherited

How many active Citizens are there?

Parameters
startingMemIdDon't print Citizens with lower IDs

Definition at line 238 of file Citizen.cc.

240  {
241  if (startingMemId == 0) { // easy
242  ReadGuard guard(citizenLock);
243  return _activeCitizens.size();
244  }
245 
246  int n = 0;
247  ReadGuard guard(citizenLock);
248  for (table::iterator cur = _activeCitizens.begin(); cur != _activeCitizens.end(); cur++) {
249  if (cur->first->_CitizenId >= startingMemId) {
250  n++;
251  }
252  }
253 
254  return n;
255 }
T end(T... args)
T size(T... args)
T begin(T... args)

◆ census() [2/3]

void lsst::daf::base::Citizen::census ( std::ostream stream,
memId  startingMemId = 0 
)
staticinherited

Print a list of all active Citizens to stream, sorted by ID.

Parameters
streamstream to print to
startingMemIdDon't print Citizens with lower IDs

Definition at line 259 of file Citizen.cc.

261  {
262  ReadGuard guard(citizenLock);
263 
265 
266  for (std::vector<Citizen const*>::const_iterator citizen = leaks->begin(), end = leaks->end();
267  citizen != end; ++citizen) {
268  if ((*citizen)->getId() >= startingMemId) {
269  stream << (*citizen)->repr() << "\n";
270  }
271  }
272 }
STL class.
STL class.
T begin(T... args)
int end
static const std::vector< const Citizen * > * census()
Return a (newly allocated) std::vector of active Citizens sorted by ID.
Definition: Citizen.cc:287

◆ census() [3/3]

std::vector< dafBase::Citizen const * > const * lsst::daf::base::Citizen::census ( )
staticinherited

Return a (newly allocated) std::vector of active Citizens sorted by ID.

You are responsible for deleting it; or you can say std::unique_ptr<std::vector<Citizen const*> const> leaks(Citizen::census()); and not bother (that becomes std::unique_ptr in C++11)

Definition at line 287 of file Citizen.cc.

287  {
289  ReadGuard guard(citizenLock);
290  vec->reserve(_activeCitizens.size());
291 
292  for (table::iterator cur = _activeCitizens.begin(); cur != _activeCitizens.end(); cur++) {
293  vec->push_back(dynamic_cast<Citizen const*>(cur->first));
294  }
295 
296  std::sort(vec->begin(), vec->end(), cmpId);
297 
298  return vec;
299 }
T end(T... args)
T push_back(T... args)
T size(T... args)
STL class.
T begin(T... args)
T sort(T... args)
T reserve(T... args)

◆ col_begin()

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

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

Incrementing an y_iterator moves it up the column

Definition at line 431 of file ImageBase.h.

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

◆ col_end()

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

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

Definition at line 434 of file ImageBase.h.

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

◆ end() [1/2]

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

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

Definition at line 280 of file Image.cc.

280  {
281  return _gilView.end();
282 }

◆ end() [2/2]

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

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

312  {
313  if (!contiguous) {
314  throw LSST_EXCEPT(pex::exceptions::RuntimeError, "Only contiguous == true makes sense");
315  }
316  if (!this->isContiguous()) {
317  throw LSST_EXCEPT(pex::exceptions::RuntimeError, "Image's pixels are not contiguous");
318  }
319 
320  return row_end(getHeight() - 1);
321 }
int getHeight() const
Return the number of rows in the image.
Definition: ImageBase.h:316
#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:422

◆ get() [1/2]

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

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

Definition at line 234 of file Image.cc.

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

◆ get() [2/2]

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

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

Definition at line 246 of file Image.cc.

246  {
247  int x = index.getX();
248  int y = index.getY();
249  if (origin == PARENT) {
250  x -= getX0();
251  y -= getY0();
252  }
253  return _gilView(x, y)[0];
254 }
int y
Definition: SpanSet.cc:49
int getX0() const
Return the image&#39;s column-origin.
Definition: ImageBase.h:324
double x
int getY0() const
Return the image&#39;s row-origin.
Definition: ImageBase.h:332

◆ get0() [1/2]

template<typename PixelT>
PixelConstReference lsst::afw::image::ImageBase< PixelT >::get0 ( int  x,
int  y 
) const
inline
Deprecated:
Deprecated in 16.0.

No timeline for removal. Replaced by get(Point2I, ImageOrigin).Return a reference to the pixel (x, y)

Definition at line 291 of file ImageBase.h.

291 { return operator()(x - getX0(), y - getY0()); }
int y
Definition: SpanSet.cc:49
int getX0() const
Return the image&#39;s column-origin.
Definition: ImageBase.h:324
double x
int getY0() const
Return the image&#39;s row-origin.
Definition: ImageBase.h:332
PixelReference operator()(int x, int y)
Definition: Image.cc:195

◆ get0() [2/2]

template<typename PixelT>
PixelConstReference lsst::afw::image::ImageBase< PixelT >::get0 ( int  x,
int  y,
CheckIndices const &  check 
) const
inline
Deprecated:
Deprecated in 16.0.

No timeline for removal. Replaced by get(Point2I, ImageOrigin).Return a reference to the pixel (x, y)

Definition at line 292 of file ImageBase.h.

292  {
293  return operator()(x - getX0(), y - getY0(), check);
294  }
int y
Definition: SpanSet.cc:49
int getX0() const
Return the image&#39;s column-origin.
Definition: ImageBase.h:324
double x
int getY0() const
Return the image&#39;s row-origin.
Definition: ImageBase.h:332
PixelReference operator()(int x, int y)
Definition: Image.cc:195

◆ getArray() [1/2]

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

Definition at line 494 of file ImageBase.h.

494  {
495  int rowStride = reinterpret_cast<PixelT*>(row_begin(1)) - reinterpret_cast<PixelT*>(row_begin(0));
496  return ndarray::external(reinterpret_cast<PixelT*>(row_begin(0)),
497  ndarray::makeVector(getHeight(), getWidth()), ndarray::makeVector(rowStride, 1),
498  this->_manager);
499 }
int getHeight() const
Return the number of rows in the image.
Definition: ImageBase.h:316
x_iterator row_begin(int y) const
Return an x_iterator to the start of the y&#39;th row.
Definition: ImageBase.h:419
int getWidth() const
Return the number of columns in the image.
Definition: ImageBase.h:314

◆ getArray() [2/2]

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

Definition at line 502 of file ImageBase.h.

502  {
503  int rowStride = reinterpret_cast<PixelT*>(row_begin(1)) - reinterpret_cast<PixelT*>(row_begin(0));
504  return ndarray::external(reinterpret_cast<PixelT*>(row_begin(0)),
505  ndarray::makeVector(getHeight(), getWidth()), ndarray::makeVector(rowStride, 1),
506  this->_manager);
507 }
int getHeight() const
Return the number of rows in the image.
Definition: ImageBase.h:316
x_iterator row_begin(int y) const
Return an x_iterator to the start of the y&#39;th row.
Definition: ImageBase.h:419
int getWidth() const
Return the number of columns in the image.
Definition: ImageBase.h:314

◆ getBBox()

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

Definition at line 463 of file ImageBase.h.

463  {
464  if (origin == PARENT) {
465  return lsst::geom::Box2I(_origin, getDimensions());
466  } else
468  }
lsst::geom::Extent2I getDimensions() const
Return the image&#39;s size; useful for passing to constructors.
Definition: ImageBase.h:374
An integer coordinate rectangle.
Definition: Box.h:54

◆ getDimensions()

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

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

Definition at line 374 of file ImageBase.h.

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

◆ getHeight()

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

Return the number of rows in the image.

Definition at line 316 of file ImageBase.h.

316 { return _gilView.height(); }

◆ getId()

dafBase::Citizen::memId lsst::daf::base::Citizen::getId ( ) const
inherited

Return the Citizen's ID.

Definition at line 206 of file Citizen.cc.

206 { return _CitizenId; }

◆ getNextMemId()

dafBase::Citizen::memId lsst::daf::base::Citizen::getNextMemId ( )
staticinherited

Return the memId of the next object to be allocated.

Definition at line 209 of file Citizen.cc.

209 { return _nextMemId(); }

◆ getWidth()

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

Return the number of columns in the image.

Definition at line 314 of file ImageBase.h.

314 { return _gilView.width(); }

◆ getX0()

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

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

324 { return _origin.getX(); }

◆ getXY0()

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

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

341 { return _origin; }

◆ getY0()

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

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

332 { return _origin.getY(); }

◆ hasBeenCorrupted()

bool lsst::daf::base::Citizen::hasBeenCorrupted ( )
staticinherited

Check all allocated blocks for corruption.

Definition at line 316 of file Citizen.cc.

316  {
317  ReadGuard guard(citizenLock);
318  for (table::iterator cur = _activeCitizens.begin(); cur != _activeCitizens.end(); cur++) {
319  if (cur->first->_hasBeenCorrupted()) {
320  return true;
321  }
322  }
323  for (table::iterator cur = _persistentCitizens.begin(); cur != _persistentCitizens.end(); cur++) {
324  if (cur->first->_hasBeenCorrupted()) {
325  return true;
326  }
327  }
328 
329  return false;
330 }
T end(T... args)
T begin(T... args)

◆ indexToPosition()

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

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

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

◆ init()

int lsst::daf::base::Citizen::init ( )
staticinherited

Called once when the memory system is being initialised.

Definition at line 196 of file Citizen.cc.

196  {
197  volatile int dummy = 1;
198  return dummy;
199 }

◆ isContiguous()

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

Definition at line 485 of file ImageBase.h.

485 { return begin() + getWidth() * getHeight() == end(); }
int getHeight() const
Return the number of rows in the image.
Definition: ImageBase.h:316
iterator end() const
Return an STL compliant iterator to the end of the image.
Definition: Image.cc:280
int getWidth() const
Return the number of columns in the image.
Definition: ImageBase.h:314
iterator begin() const
Return an STL compliant iterator to the start of the image.
Definition: Image.cc:275

◆ markPersistent()

void lsst::daf::base::Citizen::markPersistent ( void  )
inherited

Mark a Citizen as persistent and not destroyed until process end.

Definition at line 225 of file Citizen.cc.

225  {
226  WriteGuard guard(citizenLock);
227  _persistentCitizens[this] = _activeCitizens[this];
228  _activeCitizens.erase(this);
229 }
T erase(T... args)

◆ operator()() [1/4]

template<typename PixelT >
ImageBase< PixelT >::PixelReference lsst::afw::image::ImageBase< PixelT >::operator() ( int  x,
int  y 
)
Deprecated:
Deprecated in 16.0.

No timeline for removal. Replaced by get(Point2I, ImageOrigin).Return a reference to the pixel (x, y)

Definition at line 195 of file Image.cc.

195  {
196  return const_cast<typename ImageBase<PixelT>::PixelReference>(
197  static_cast<typename ImageBase<PixelT>::PixelConstReference>(_gilView(x, y)[0]));
198 }
ConstReference< PixelT >::type PixelConstReference
A ConstReference to a PixelT.
Definition: ImageBase.h:120
int y
Definition: SpanSet.cc:49
double x
Reference< PixelT >::type PixelReference
A Reference to a PixelT.
Definition: ImageBase.h:118

◆ operator()() [2/4]

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

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

Definition at line 201 of file Image.cc.

202  {
203  if (check && (x < 0 || x >= getWidth() || y < 0 || y >= getHeight())) {
204  throw LSST_EXCEPT(pex::exceptions::LengthError,
205  (boost::format("Index (%d, %d) is out of range [0--%d], [0--%d]") % x % y %
206  (getWidth() - 1) % (getHeight() - 1))
207  .str());
208  }
209 
210  return const_cast<typename ImageBase<PixelT>::PixelReference>(
211  static_cast<typename ImageBase<PixelT>::PixelConstReference>(_gilView(x, y)[0]));
212 }
ConstReference< PixelT >::type PixelConstReference
A ConstReference to a PixelT.
Definition: ImageBase.h:120
int getHeight() const
Return the number of rows in the image.
Definition: ImageBase.h:316
int y
Definition: SpanSet.cc:49
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
Definition: history.py:168
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:314
Reference< PixelT >::type PixelReference
A Reference to a PixelT.
Definition: ImageBase.h:118

◆ operator()() [3/4]

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

Return a const reference to the pixel (x, y)

Definition at line 215 of file Image.cc.

215  {
216  return _gilView(x, y)[0];
217 }
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

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

Definition at line 220 of file Image.cc.

221  {
222  if (check && (x < 0 || x >= getWidth() || y < 0 || y >= getHeight())) {
223  throw LSST_EXCEPT(pex::exceptions::LengthError,
224  (boost::format("Index (%d, %d) is out of range [0--%d], [0--%d]") % x % y %
225  (this->getWidth() - 1) % (this->getHeight() - 1))
226  .str());
227  }
228 
229  return _gilView(x, y)[0];
230 }
int getHeight() const
Return the number of rows in the image.
Definition: ImageBase.h:316
int y
Definition: SpanSet.cc:49
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
Definition: history.py:168
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:314

◆ operator<<=()

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

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

Deprecated:
use assign(rhs) instead

Definition at line 171 of file Image.cc.

171  {
172  assign(rhs);
173  return *this;
174 }
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:177

◆ operator=() [1/3]

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

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

158  {
159  ImageBase tmp(rhs);
160  swap(tmp); // See Meyers, Effective C++, Item 11
161 
162  return *this;
163 }
void swap(ImageBase &rhs)
Definition: Image.cc:258

◆ operator=() [2/3]

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

Definition at line 166 of file Image.cc.

166  {
167  return *this = rhs;
168 }

◆ operator=() [3/3]

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

Set the image's pixels to rhs.

Definition at line 324 of file Image.cc.

324  {
325  fill_pixels(_gilView, rhs);
326 
327  return *this;
328 }

◆ operator[]() [1/2]

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

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

Definition at line 308 of file ImageBase.h.

308 { return get(index, PARENT); }

◆ operator[]() [2/2]

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

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

Definition at line 311 of file ImageBase.h.

311 { return get(index, PARENT); }

◆ PixelCast()

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

Convert a type to our SinglePixel type.

Definition at line 159 of file ImageBase.h.

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

◆ positionToIndex()

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

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

351  {
352  double const fullIndex = pos - PixelZeroPos - (xy == X ? getX0() : getY0());
353  int const roundedIndex = static_cast<int>(fullIndex + 0.5);
354  double const residual = fullIndex - roundedIndex;
355  return std::pair<int, double>(roundedIndex, residual);
356  }
int getX0() const
Return the image&#39;s column-origin.
Definition: ImageBase.h:324
int getY0() const
Return the image&#39;s row-origin.
Definition: ImageBase.h:332
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

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

Definition at line 285 of file Image.cc.

285  {
286  return _gilView.rbegin();
287 }

◆ rend()

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

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

Definition at line 290 of file Image.cc.

290  {
291  return _gilView.rend();
292 }

◆ repr()

std::string lsst::daf::base::Citizen::repr ( ) const
inherited

Return a string representation of a Citizen.

Definition at line 219 of file Citizen.cc.

219  {
220  return boost::str(boost::format("%d: %08x %s") % _CitizenId % this %
221  lsst::utils::demangleType(_typeName));
222 }
std::string demangleType(std::string const _typeName)
Definition: Demangle.cc:113
def format(config, name=None, writeSourceLine=True, prefix="", verbose=False)
Definition: history.py:168

◆ row_begin()

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

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

Incrementing an x_iterator moves it across the row

Definition at line 419 of file ImageBase.h.

419 { 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
inline

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

Definition at line 422 of file ImageBase.h.

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

◆ set0() [1/2]

template<typename PixelT>
void lsst::afw::image::ImageBase< PixelT >::set0 ( int  x,
int  y,
const PixelT  v 
)
inline
Deprecated:
Deprecated in 16.0.

No timeline for removal. Replaced by get(Point2I, ImageOrigin).Return a reference to the pixel (x, y)

Definition at line 295 of file ImageBase.h.

295 { operator()(x - getX0(), y - getY0()) = v; }
int y
Definition: SpanSet.cc:49
int getX0() const
Return the image&#39;s column-origin.
Definition: ImageBase.h:324
double x
int getY0() const
Return the image&#39;s row-origin.
Definition: ImageBase.h:332
PixelReference operator()(int x, int y)
Definition: Image.cc:195

◆ set0() [2/2]

template<typename PixelT>
void lsst::afw::image::ImageBase< PixelT >::set0 ( int  x,
int  y,
const PixelT  v,
CheckIndices const &  check 
)
inline
Deprecated:
Deprecated in 16.0.

No timeline for removal. Replaced by get(Point2I, ImageOrigin).Return a reference to the pixel (x, y)

Definition at line 296 of file ImageBase.h.

296  {
297  operator()(x - getX0(), y - getY0(), check) = v;
298  }
int y
Definition: SpanSet.cc:49
int getX0() const
Return the image&#39;s column-origin.
Definition: ImageBase.h:324
double x
int getY0() const
Return the image&#39;s row-origin.
Definition: ImageBase.h:332
PixelReference operator()(int x, int y)
Definition: Image.cc:195

◆ setCorruptionCallback()

dafBase::Citizen::memCallback lsst::daf::base::Citizen::setCorruptionCallback ( Citizen::memCallback  func)
staticinherited

Set the CorruptionCallback function.

Parameters
funcfunction be called when block is found to be corrupted

Definition at line 391 of file Citizen.cc.

393  {
394  Citizen::memCallback old = _corruptionCallback;
395  _corruptionCallback = func;
396 
397  return old;
398 }
memId(* memCallback)(const Citizen *ptr)
Definition: Citizen.h:61

◆ setDeleteCallback()

dafBase::Citizen::memCallback lsst::daf::base::Citizen::setDeleteCallback ( Citizen::memCallback  func)
staticinherited

Set the DeleteCallback function.

Parameters
funcfunction be called when desired block is deleted

Definition at line 381 of file Citizen.cc.

383  {
384  Citizen::memCallback old = _deleteCallback;
385  _deleteCallback = func;
386 
387  return old;
388 }
memId(* memCallback)(const Citizen *ptr)
Definition: Citizen.h:61

◆ setDeleteCallbackId()

dafBase::Citizen::memId lsst::daf::base::Citizen::setDeleteCallbackId ( Citizen::memId  id)
staticinherited

Call the current DeleteCallback when block is deleted.

Parameters
idDesired ID

Definition at line 347 of file Citizen.cc.

348  {
349  WriteGuard guard(citizenLock);
350  Citizen::memId oldId = _deleteId;
351  _deleteId = id;
352 
353  return oldId;
354 }
unsigned long memId
Type of the block&#39;s ID.
Definition: Citizen.h:58
table::Key< int > id
Definition: Detector.cc:166

◆ setNewCallback()

dafBase::Citizen::memNewCallback lsst::daf::base::Citizen::setNewCallback ( Citizen::memNewCallback  func)
staticinherited

Set the NewCallback function.

Parameters
funcThe new function to be called when a designated block is allocated

Definition at line 371 of file Citizen.cc.

373  {
374  Citizen::memNewCallback old = _newCallback;
375  _newCallback = func;
376 
377  return old;
378 }
memId(* memNewCallback)(const memId cid)
A function used to register a callback.
Definition: Citizen.h:60

◆ setNewCallbackId()

dafBase::Citizen::memId lsst::daf::base::Citizen::setNewCallbackId ( Citizen::memId  id)
staticinherited

Call the NewCallback when block is allocated.

Parameters
idDesired ID

Definition at line 337 of file Citizen.cc.

338  {
339  WriteGuard guard(citizenLock);
340  Citizen::memId oldId = _newId;
341  _newId = id;
342 
343  return oldId;
344 }
unsigned long memId
Type of the block&#39;s ID.
Definition: Citizen.h:58
table::Key< int > id
Definition: Detector.cc:166

◆ setXY0() [1/2]

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

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

452 { _origin = origin; }

◆ setXY0() [2/2]

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

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

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

◆ swap()

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

Definition at line 258 of file Image.cc.

258  {
259  using std::swap; // See Meyers, Effective C++, Item 25
260 
261  swap(_manager, rhs._manager); // just swapping the pointers
262  swap(_gilView, rhs._gilView);
263  swap(_origin, rhs._origin);
264 }
T swap(T... args)
void swap(ImageBase &rhs)
Definition: Image.cc:258

◆ x_at()

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

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

Definition at line 425 of file ImageBase.h.

425 { 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
inline

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

443 { 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:122

◆ y_at()

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

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

Definition at line 437 of file ImageBase.h.

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

Friends And Related Function Documentation

◆ ImageBase

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

Definition at line 155 of file ImageBase.h.

◆ DecoratedImage

template<typename PixelT>
template<typename >
friend class DecoratedImage
friend

Definition at line 167 of file ImageBase.h.

◆ MaskedImage

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

Definition at line 169 of file ImageBase.h.


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