30 #ifndef LSST_AFW_IMAGE_IMAGE_H 31 #define LSST_AFW_IMAGE_IMAGE_H 37 #include "boost/mpl/bool.hpp" 57 template <
typename PixelT>
60 template <
typename,
typename,
typename>
66 template <
typename ImagePT = PixelT>
71 template <
typename OtherPixelT>
84 explicit Image(
unsigned int width,
unsigned int height,
PixelT initialValue = 0);
117 const bool deep =
false);
127 Image(
const Image& rhs,
const bool deep =
false);
148 bool allowUnsafe =
false);
168 bool allowUnsafe =
false);
185 bool allowUnsafe =
false);
188 template <
typename OtherPixelT>
191 explicit Image(ndarray::Array<PixelT, 2, 1>
const& array,
bool deep =
false,
195 ~Image()
override =
default;
227 return Image(*
this, bbox, origin,
false);
385 template <
typename LhsPixelT,
typename RhsPixelT>
388 template <
typename LhsPixelT,
typename RhsPixelT>
391 template <
typename LhsPixelT,
typename RhsPixelT>
394 template <
typename LhsPixelT,
typename RhsPixelT>
397 template <
typename PixelT>
403 template <
typename PixelT>
463 int getWidth()
const {
return _image->getWidth(); }
468 int getX0()
const {
return _image->getX0(); }
470 int getY0()
const {
return _image->getY0(); }
525 template <
typename PixelT>
537 template <
typename T1,
typename T2>
std::shared_ptr< Image< PixelT > > getImage()
Return a shared_ptr to the DecoratedImage's Image.
Image operator[](lsst::geom::Box2I const &bbox) const
Return a subimage corresponding to the given box (interpreted as PARENT coordinates).
std::shared_ptr< Image< PixelT > const > getImage() const
Return a shared_ptr to the DecoratedImage's Image as const.
A templated class to return this classes' type (present in Image/Mask/MaskedImage) ...
Image & operator=(const PixelT rhs)
Set the image's pixels to rhs.
Image & operator*=(PixelT const rhs)
Multiply lhs by scalar rhs.
std::shared_ptr< lsst::daf::base::PropertySet > getMetadata() const
int getWidth() const
Return the number of columns in the image.
int getHeight() const
Return the number of rows in the image.
Options for writing an image to FITS.
Image & operator/=(PixelT const rhs)
Divide lhs by scalar rhs.
void scaledDivides(double const c, Image< PixelT > const &rhs)
Divide lhs by Image c*rhs (i.e. pixel-by-pixel division)
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.
void setMetadata(std::shared_ptr< lsst::daf::base::PropertySet > metadata)
A simple struct that combines the two arguments that must be passed to most cfitsio routines and cont...
The base class for all image classed (Image, Mask, MaskedImage, ...)
Image subset(lsst::geom::Box2I const &bbox, ImageOrigin origin=PARENT) const
Return a subimage corresponding to the given box.
A Function taking two arguments.
Image & operator-=(PixelT const rhs)
Subtract scalar rhs from lhs.
afw::table::PointKey< int > dimensions
A base class for image defects.
table::Key< double > gain
Represent a 2-dimensional array of bitmask pixels.
Image(ndarray::Array< PixelT, 2, 1 > const &array, bool deep=false, lsst::geom::Point2I const &xy0=lsst::geom::Point2I())
Lifetime-management for memory that goes into FITS memory files.
A class to manipulate images, masks, and variance as a single object.
Image & operator+=(PixelT const rhs)
Add scalar rhs to lhs.
bool imagesOverlap(ImageBase< T1 > const &image1, ImageBase< T2 > const &image2)
Return true if the pixels for two images or masks overlap in memory.
void setGain(double gain)
Set the DecoratedImage's gain.
void scaledPlus(double const c, Image< PixelT > const &rhs)
Add Image c*rhs to lhs.
~Image() override=default
friend class DecoratedImage
void scaledMultiplies(double const c, Image< PixelT > const &rhs)
Multiply lhs by Image c*rhs (i.e. pixel-by-pixel multiplication)
Class for storing generic metadata.
int getX0() const
Return the image's column-origin.
const lsst::geom::Extent2I getDimensions() const
Return the image's size; useful for passing to constructors.
Backwards-compatibility support for depersisting the old Calib (FluxMag0/FluxMag0Err) objects...
Image(Image< OtherPixelT > const &rhs, const bool deep)
static Image readFits(std::string const &filename, int hdu=fits::DEFAULT_HDU)
Read an Image from a regular FITS file.
An integer coordinate rectangle.
static Image readFits(fits::MemFileManager &manager, int hdu=fits::DEFAULT_HDU)
Read an Image from a FITS RAM file.
lsst::geom::Box2I bboxFromMetadata(daf::base::PropertySet &metadata)
Determine the image bounding box from its metadata (FITS header)
int getY0() const
Return the image's row-origin.
A class to represent a 2-dimensional array of pixels.
detail::Image_tag image_category
double getGain() const
Return the DecoratedImage's gain.
Image< ImagePT > type
Return the desired type.
A container for an Image and its associated metadata.
void scaledMinus(double const c, Image< PixelT > const &rhs)
Subtract Image c*rhs from lhs.
const int DEFAULT_HDU
Specify that the default HDU should be read.