32 #include "boost/format.hpp"
41 #include "lsst/afw/detection/FootprintArray.cc"
49 setPixel(T
val) : _val(val) {}
51 T operator()(T)
const {
59 struct setPixel<boost::uint16_t> {
60 typedef boost::uint16_t T;
62 setPixel(T
val) : _mask(~val) {}
64 T operator()(T pix)
const {
73 template <
typename ImagePixelT,
typename MaskPixelT,
typename VariancePixelT>
77 HeavyFootprintCtrl
const *ctrl
83 HeavyFootprintCtrl ctrl_s = HeavyFootprintCtrl();
89 switch (ctrl->getModifySource()) {
97 ImagePixelT
const ival = ctrl->getImageVal();
98 MaskPixelT
const mval = ctrl->getMaskVal();
99 VariancePixelT
const vval = ctrl->getVarianceVal();
102 setPixel<ImagePixelT>(ival), mimage.
getXY0());
104 setPixel<MaskPixelT>(mval), mimage.
getXY0());
106 setPixel<VariancePixelT>(vval), mimage.
getXY0());
112 template <
typename ImagePixelT,
typename MaskPixelT,
typename VariancePixelT>
115 HeavyFootprintCtrl
const* ctrl)
123 template <
typename ImagePixelT,
typename MaskPixelT,
typename VariancePixelT>
133 template <
typename ImagePixelT,
typename MaskPixelT,
typename VariancePixelT>
140 template<
typename ImagePixelT,
typename MaskPixelT,
typename VariancePixelT>
141 PTR(HeavyFootprint<ImagePixelT,MaskPixelT,VariancePixelT>)
143 HeavyFootprint<ImagePixelT,MaskPixelT,VariancePixelT> const& h2)
149 geom::Box2I bbox(h1.getBBox());
150 bbox.include(h2.getBBox());
153 image::MaskedImage<ImagePixelT,MaskPixelT,VariancePixelT> im1(bbox);
154 image::MaskedImage<ImagePixelT,MaskPixelT,VariancePixelT> im2(bbox);
161 return
PTR(HeavyFootprint<ImagePixelT,MaskPixelT,VariancePixelT>)
162 (new HeavyFootprint<ImagePixelT,MaskPixelT,VariancePixelT>(*foot, im1));
172 #define INSTANTIATE(TYPE) \
173 template class HeavyFootprint<TYPE>; \
174 template PTR(HeavyFootprint<TYPE>) mergeHeavyFootprints<TYPE>( \
175 HeavyFootprint<TYPE> const&, HeavyFootprint<TYPE> const&);
void flattenArray(Footprint const &fp, ndarray::Array< T, N, C > const &src, ndarray::Array< U, N-1, D > const &dest, lsst::afw::geom::Point2I const &xy0=lsst::afw::geom::Point2I())
Flatten the first two dimensions of an array.
ImagePtr getImage(bool const noThrow=false) const
Return a (Ptr to) the MaskedImage's image.
void expandArray(Footprint const &fp, ndarray::Array< T, N, C > const &src, ndarray::Array< U, N+1, D > const &dest, lsst::afw::geom::Point2I const &xy0=lsst::afw::geom::Point2I())
expand the first dimension of an array
lsst::afw::detection::Footprint Footprint
definition of the Trace messaging facilities
table::Key< table::Array< Kernel::Pixel > > image
VariancePtr getVariance(bool const noThrow=false) const
Return a (Ptr to) the MaskedImage's variance.
#define INSTANTIATE(TYPE)
A class to manipulate images, masks, and variance as a single object.
Vector< T, N > makeVector(T v1, T v2,..., T vN)
Variadic constructor for Vector.
geom::Point2I getXY0() const
detail::SimpleInitializer< N > allocate(Vector< int, N > const &shape)
Create an expression that allocates uninitialized memory for an array.
Support for peaks in images.
MaskPtr getMask(bool const noThrow=false) const
Return a (Ptr to) the MaskedImage's mask.
geom::Point2I getXY0() const
Implementation of the Class MaskedImage.
boost::shared_ptr< Footprint > mergeFootprints(Footprint const &foot1, Footprint const &foot2)
Include files required for standard LSST Exception handling.
boost::shared_ptr< HeavyFootprint< ImagePixelT, MaskPixelT, VariancePixelT > > mergeHeavyFootprints(HeavyFootprint< ImagePixelT, MaskPixelT, VariancePixelT > const &h1, HeavyFootprint< ImagePixelT, MaskPixelT, VariancePixelT > const &h2)