2 #if !defined(LSST_DEBLENDER_BASELINE_H)
3 #define LSST_DEBLENDER_BASELINE_H
19 template <
typename ImagePixelT,
29 typedef typename lsst::afw::
image::Mask<MaskPixelT>
MaskT;
34 typedef typename lsst::afw::detection::HeavyFootprint<ImagePixelT, MaskPixelT, VariancePixelT>
HeavyFootprintT;
36 typedef typename
PTR(lsst::afw::detection::HeavyFootprint<ImagePixelT, MaskPixelT, VariancePixelT>)
HeavyFootprintPtrT;
44 std::pair<ImagePtrT, FootprintPtrT>
46 lsst::afw::detection::
Footprint const& foot,
47 lsst::afw::detection::PeakRecord const& pk,
60 lsst::afw::detection::PeakRecord const& pk);
73 std::vector<typename
PTR(lsst::afw::
image::MaskedImage<ImagePixelT, MaskPixelT, VariancePixelT>)>
75 lsst::afw::detection::
Footprint const& foot,
76 std::vector<typename
PTR(lsst::afw::
image::Image<ImagePixelT>)> templates,
77 std::vector<boost::shared_ptr<lsst::afw::detection::
Footprint> > templ_footprints,
80 std::vector<
bool> const& ispsf,
81 std::vector<
int> const& pkx,
82 std::vector<
int> const& pky,
83 std::vector<boost::shared_ptr<typename lsst::afw::detection::HeavyFootprint<ImagePixelT,MaskPixelT,VariancePixelT> > > & strays,
85 double clipStrayFluxFraction
91 boost::shared_ptr<lsst::afw::detection::
Footprint>,
92 ImagePixelT threshold);
95 boost::shared_ptr<lsst::afw::detection::Footprint>
97 boost::shared_ptr<lsst::afw::detection::Footprint>,
98 ImagePixelT threshold);
111 int strayFluxOptions,
112 std::vector<boost::shared_ptr<lsst::afw::detection::Footprint> > tfoots,
113 std::vector<
bool> const& ispsf,
114 std::vector<
int> const& pkx,
115 std::vector<
int> const& pky,
116 double clipStrayFluxFraction,
117 std::vector<boost::shared_ptr<typename lsst::afw::detection::HeavyFootprint<ImagePixelT,MaskPixelT,VariancePixelT> > > & strays);
boost::uint16_t MaskPixel
static const int STRAYFLUX_TO_POINT_SOURCES_WHEN_NECESSARY
lsst::afw::detection::Footprint Footprint
boost::shared_ptr< lsst::afw::detection::Footprint > FootprintPtrT
lsst::afw::image::MaskedImage< ImagePixelT, MaskPixelT, VariancePixelT > MaskedImageT
static boost::shared_ptr< lsst::afw::detection::Footprint > symmetrizeFootprint(lsst::afw::detection::Footprint const &foot, int cx, int cy)
table::Key< table::Array< Kernel::Pixel > > image
static const int STRAYFLUX_NEAREST_FOOTPRINT
static void medianFilter(ImageT const &img, ImageT &outimg, int halfsize)
Represent a 2-dimensional array of bitmask pixels.
boost::shared_ptr< lsst::afw::image::Mask< MaskPixelT > > MaskPtrT
A class to manipulate images, masks, and variance as a single object.
static bool hasSignificantFluxAtEdge(ImagePtrT, boost::shared_ptr< lsst::afw::detection::Footprint >, ImagePixelT threshold)
static const int STRAYFLUX_TRIM
static const int ASSIGN_STRAYFLUX
float VariancePixel
! default type for Masks and MaskedImage Masks
static void makeMonotonic(ImageT &img, lsst::afw::detection::PeakRecord const &pk)
static void _find_stray_flux(lsst::afw::detection::Footprint const &foot, ImagePtrT tsum, MaskedImageT const &img, int strayFluxOptions, std::vector< boost::shared_ptr< lsst::afw::detection::Footprint > > tfoots, std::vector< bool > const &ispsf, std::vector< int > const &pkx, std::vector< int > const &pky, double clipStrayFluxFraction, std::vector< boost::shared_ptr< typename lsst::afw::detection::HeavyFootprint< ImagePixelT, MaskPixelT, VariancePixelT > > > &strays)
static boost::shared_ptr< lsst::afw::detection::Footprint > getSignificantEdgePixels(ImagePtrT, boost::shared_ptr< lsst::afw::detection::Footprint >, ImagePixelT threshold)
afw::table::Key< double > sigma1
static void _sum_templates(std::vector< ImagePtrT > timgs, ImagePtrT tsum)
Implementation of the Class MaskedImage.
static std::pair< ImagePtrT, FootprintPtrT > buildSymmetricTemplate(MaskedImageT const &img, lsst::afw::detection::Footprint const &foot, lsst::afw::detection::PeakRecord const &pk, double sigma1, bool minZero, bool patchEdges, bool *patchedEdges)
static const int STRAYFLUX_TO_POINT_SOURCES_ALWAYS
boost::shared_ptr< lsst::afw::image::MaskedImage< ImagePixelT > MaskPixelT, VariancePixelT > MaskedImagePtrT
static const int STRAYFLUX_R_TO_FOOTPRINT
boost::shared_ptr< lsst::afw::detection::HeavyFootprint< ImagePixelT > MaskPixelT, VariancePixelT > HeavyFootprintPtrT
static std::vector< typename boost::shared_ptr< lsst::afw::image::MaskedImage< ImagePixelT > MaskPixelT, VariancePixelT >)> apportionFlux(MaskedImageT const &img, lsst::afw::detection::Footprint const &foot, std::vector< typename boost::shared_ptr< lsst::afw::image::Image< ImagePixelT > >> templates, std::vector< boost::shared_ptr< lsst::afw::detection::Footprint > > templ_footprints, ImagePtrT templ_sum, std::vector< bool > const &ispsf, std::vector< int > const &pkx, std::vector< int > const &pky, std::vector< boost::shared_ptr< typename lsst::afw::detection::HeavyFootprint< ImagePixelT, MaskPixelT, VariancePixelT > > > &strays, int strayFluxOptions, double clipStrayFluxFraction)
boost::shared_ptr< lsst::afw::image::Image< ImagePixelT > > ImagePtrT