LSSTApplications
20.0.0
LSSTDataManagementBasePackage
|
Go to the documentation of this file.
30 #ifndef LSST_AFW_IMAGE_IMAGEBASE_H
31 #define LSST_AFW_IMAGE_IMAGEBASE_H
52 struct ImageWriteOptions;
65 template <
typename ImageT>
77 operator bool()
const {
return _check; }
84 template <
typename PixelT>
86 typedef typename boost::gil::channel_traits<PixelT>::reference
type;
89 template <
typename PixelT>
91 typedef typename boost::gil::channel_traits<PixelT>::const_reference
type;
101 template <
typename PixelT>
104 typedef typename lsst::afw::image::detail::types_traits<PixelT>::view_t _view_t;
105 typedef typename lsst::afw::image::detail::types_traits<PixelT>::const_view_t _const_view_t;
107 typedef ndarray::Manager Manager;
149 typedef typename ndarray::Array<PixelT, 2, 1>
Array;
151 typedef typename ndarray::Array<PixelT const, 2, 1>
ConstArray;
153 template <
typename OtherPixelT>
157 template <
typename SinglePixelT>
167 template <
typename,
typename,
typename>
209 const bool deep =
false);
216 template <
typename OtherPixelT>
220 "Only deep copies are permitted for ImageBases with different pixel types");
224 copy_and_convert_pixels(rhs._gilView, tmp._gilView);
260 [[deprecated(
"Use `assign` instead. To be removed after 20.0.0.")]]
294 [[deprecated(
"Use `operator[Point2I(x, y)]` instead. To be removed after 20.0.0.")]]
300 [deprecated(
"No replacement; `operator[Point2I(x, y)]` provides unchecked lookup. To be "
301 "removed after 20.0.0.")]]
306 [[deprecated(
"Use `operator[Point2I(x, y)]` instead. To be removed after 20.0.0.")]]
312 [deprecated(
"No replacement; `operator[Point2I(x, y)]` provides unchecked lookup. To be "
313 "removed after 20.0.0.")]]
343 int getX0()
const {
return _origin.getX(); }
351 int getY0()
const {
return _origin.getY(); }
372 int const roundedIndex =
static_cast<int>(fullIndex + 0.5);
373 double const residual = fullIndex - roundedIndex;
491 Manager::Ptr _manager;
500 const _view_t& view);
507 template <
typename PixelT>
508 void swap(ImageBase<PixelT>&
a, ImageBase<PixelT>&
b);
512 template <
typename PixelT>
514 int rowStride =
reinterpret_cast<PixelT*
>(row_begin(1)) -
reinterpret_cast<PixelT*
>(row_begin(0));
515 return ndarray::external(
reinterpret_cast<PixelT*
>(row_begin(0)),
516 ndarray::makeVector(getHeight(), getWidth()), ndarray::makeVector(rowStride, 1),
520 template <
typename PixelT>
522 int rowStride =
reinterpret_cast<PixelT*
>(row_begin(1)) -
reinterpret_cast<PixelT*
>(row_begin(0));
523 return ndarray::external(
reinterpret_cast<PixelT*
>(row_begin(0)),
524 ndarray::makeVector(getHeight(), getWidth()), ndarray::makeVector(rowStride, 1),
Backwards-compatibility support for depersisting the old Calib (FluxMag0/FluxMag0Err) objects.
y_iterator col_begin(int x) const
Return an y_iterator to the start of the y'th row.
static _view_t _allocateView(lsst::geom::Extent2I const &dimensions, Manager::Ptr &manager)
A container for an Image and its associated metadata.
ndarray::Array< PixelT, 2, 1 > Array
A mutable ndarray representation of the image.
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.
reverse_iterator rbegin() const
Return an STL compliant reverse iterator to the start of the image.
ndarray::Array< PixelT const, 2, 1 > ConstArray
An immutable ndarray representation of the image.
ImageBase(const ImageBase< OtherPixelT > &rhs, const bool deep)
generalised copy constructor
bool isContiguous() const
_view_t::y_iterator xy_y_iterator
An iterator for traversing the pixels in a row, created from an xy_locator.
const double PixelZeroPos
position of center of pixel 0
_const_view_t::reverse_iterator const_reverse_iterator
An STL compliant const reverse iterator.
y_iterator y_at(int x, int y) const
Return an y_iterator to the point (x, y) in the image.
reverse_iterator rend() const
Return an STL compliant reverse iterator to the end of the image.
iterator at(int x, int y) const
Return an STL compliant iterator at the point (x, y)
iterator end() const
Return an STL compliant iterator to the end of the image.
x_iterator row_begin(int y) const
Return an x_iterator to the start of the y'th row.
_view_t::reverse_iterator reverse_iterator
An STL compliant reverse iterator.
_const_view_t::iterator const_iterator
An STL compliant const iterator.
_view_t _getRawView() const
double indexToPosition(double ind, lsst::afw::image::xOrY const xy) const
Convert image index to image position.
_view_t::y_iterator y_iterator
An iterator for traversing the pixels in a column.
ConstArray getArray() const
_view_t::xy_locator xy_locator
An xy_locator.
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)
ImageBase & operator=(const ImageBase &rhs)
Shallow assignment operator.
PixelConstReference get0(int x, int y) const
virtual ~ImageBase()=default
PixelConstReference operator[](lsst::geom::Point2I const &index) const
Return a reference to a single pixel in PARENT coordinates (with no bounds check).
int getHeight() const
Return the number of rows in the image.
ImageT::image_category image_category
void set0(int x, int y, const PixelT v)
PixelReference operator()(int x, int y)
Return a reference to the pixel (x, y) in LOCAL coordinates.
std::shared_ptr< RecordT > src
x_iterator x_at(int x, int y) const
Return an x_iterator to the point (x, y) in the image.
metafunction to extract const reference type from PixelT
metafunction to extract reference type from PixelT
PixelReference operator[](lsst::geom::Point2I const &index)
Return a reference to a single pixel in PARENT coordinates (with no bounds check).
A class to manipulate images, masks, and variance as a single object.
iterator begin() const
Return an STL compliant iterator to the start of the image.
Reference< PixelT >::type PixelReference
A Reference to a PixelT.
xy_locator xy_at(int x, int y) const
Return an xy_locator at the point (x, y) in the image.
x_iterator row_end(int y) const
Return an x_iterator to the end of the y'th row.
static _view_t _makeSubView(lsst::geom::Extent2I const &dimensions, lsst::geom::Extent2I const &offset, const _view_t &view)
_const_view_t::y_iterator const_y_iterator
A const iterator for traversing the pixels in a column.
afw::table::PointKey< int > dimensions
ImageBase & operator<<=(const ImageBase &rhs)
Set the lhs's pixel values to equal the rhs's.
A class used to request that array accesses be checked.
provides unchecked lookup To be removed after PixelConstReference get0(int x, int y, CheckIndices const &check) const
_view_t::x_iterator x_iterator
An iterator for traversing the pixels in a row.
A base class for image defects.
std::string const wcsNameForXY0
#define LSST_EXCEPT(type,...)
Create an exception with a given type.
int getX0() const
Return the image's column-origin.
PixelT SinglePixel
A single Pixel of the same type as those in the ImageBase.
lsst::geom::Extent2I getDimensions() const
Return the image's size; useful for passing to constructors.
x_iterator fast_iterator
A fast STL compliant iterator for contiguous images N.b.
Reports invalid arguments.
_view_t::x_iterator xy_x_iterator
An iterator for traversing the pixels in a row, created from an xy_locator.
Extent< int, 2 > Extent2I
_view_t::iterator iterator
An STL compliant iterator.
An integer coordinate rectangle.
void setXY0(int const x0, int const y0)
Set the ImageBase's origin.
lsst::geom::Point2I getXY0() const
Return the image's origin.
void swap(Image< PixelT > &a, Image< PixelT > &b)
void setXY0(lsst::geom::Point2I const origin)
Set the ImageBase's origin.
int getY0() const
Return the image's row-origin.
boost::gil::channel_traits< PixelT >::reference type
reference type
CheckIndices(bool check=true)
PixelT Pixel
A pixel in this ImageBase.
lsst::geom::Box2I getBBox(ImageOrigin origin=PARENT) const
_const_view_t::x_iterator const_x_iterator
A const iterator for traversing the pixels in a row.
y_iterator col_end(int x) const
Return an y_iterator to the start of the y'th row.
traits class for image categories
void swap(ImageBase &rhs)
ConstReference< PixelT >::type PixelConstReference
A ConstReference to a PixelT.
provides unchecked lookup To be removed after void set0(int x, int y, const PixelT v, CheckIndices const &check)
The base class for all image classed (Image, Mask, MaskedImage, ...)
detail::basic_tag image_category
trait class to identify type of image
PixelReference get(lsst::geom::Point2I const &index, ImageOrigin origin)
Return a reference to a single pixel (with no bounds check).
int getWidth() const
Return the number of columns in the image.
static SinglePixel PixelCast(SinglePixelT rhs)
Convert a type to our SinglePixel type.
boost::gil::channel_traits< PixelT >::const_reference type
const reference type
_view_t::xy_locator::const_t const_xy_locator
A const_xy_locator.