LSST Applications g070148d5b3+33e5256705,g0d53e28543+25c8b88941,g0da5cf3356+2dd1178308,g1081da9e2a+62d12e78cb,g17e5ecfddb+7e422d6136,g1c76d35bf8+ede3a706f7,g295839609d+225697d880,g2e2c1a68ba+cc1f6f037e,g2ffcdf413f+853cd4dcde,g38293774b4+62d12e78cb,g3b44f30a73+d953f1ac34,g48ccf36440+885b902d19,g4b2f1765b6+7dedbde6d2,g5320a0a9f6+0c5d6105b6,g56b687f8c9+ede3a706f7,g5c4744a4d9+ef6ac23297,g5ffd174ac0+0c5d6105b6,g6075d09f38+66af417445,g667d525e37+2ced63db88,g670421136f+2ced63db88,g71f27ac40c+2ced63db88,g774830318a+463cbe8d1f,g7876bc68e5+1d137996f1,g7985c39107+62d12e78cb,g7fdac2220c+0fd8241c05,g96f01af41f+368e6903a7,g9ca82378b8+2ced63db88,g9d27549199+ef6ac23297,gabe93b2c52+e3573e3735,gb065e2a02a+3dfbe639da,gbc3249ced9+0c5d6105b6,gbec6a3398f+0c5d6105b6,gc9534b9d65+35b9f25267,gd01420fc67+0c5d6105b6,geee7ff78d7+a14128c129,gf63283c776+ede3a706f7,gfed783d017+0c5d6105b6,w.2022.47
LSST Data Management Base Package
Loading...
Searching...
No Matches
BaselineUtils.h
Go to the documentation of this file.
1// -*- LSST-C++ -*-
2#if !defined(LSST_DEBLENDER_BASELINE_H)
3#define LSST_DEBLENDER_BASELINE_H
5
6#include <vector>
7#include <utility>
8
14
15namespace lsst {
16 namespace meas {
17 namespace deblender {
18
19 template <typename ImagePixelT,
20 typename MaskPixelT=lsst::afw::image::MaskPixel,
21 typename VariancePixelT=lsst::afw::image::VariancePixel>
23
24 public:
31
35
37
38 static
41 int cx, int cy);
42
43 static
48 double sigma1,
49 bool minZero,
50 bool patchEdges,
51 bool* patchedEdges);
52
53 static void
54 medianFilter(ImageT const& img,
55 ImageT & outimg,
56 int halfsize);
57
58 static void
61
62 static const int ASSIGN_STRAYFLUX = 0x1;
64 static const int STRAYFLUX_TO_POINT_SOURCES_ALWAYS = 0x4;
65 // split flux according to the closest distance to the template?
66 // (default is according to distance to the peak)
67 static const int STRAYFLUX_R_TO_FOOTPRINT = 0x8;
68 static const int STRAYFLUX_NEAREST_FOOTPRINT = 0x10;
69 static const int STRAYFLUX_TRIM = 0x20;
70
71 // swig doesn't seem to understand std::vector<MaskedImagePtrT>...
72 static
74 apportionFlux(MaskedImageT const& img,
78 //
79 ImagePtrT templ_sum,
80 std::vector<bool> const& ispsf,
81 std::vector<int> const& pkx,
82 std::vector<int> const& pky,
84 int strayFluxOptions,
85 double clipStrayFluxFraction
86 );
87
88 static
89 bool
92 ImagePixelT threshold);
93
94 static
98 ImagePixelT threshold);
99
100
101 static
102 void
104 ImagePtrT tsum);
105
106 static
107 void
109 ImagePtrT tsum,
110 MaskedImageT const& img,
111 int strayFluxOptions,
113 std::vector<bool> const& ispsf,
114 std::vector<int> const& pkx,
115 std::vector<int> const& pky,
116 double clipStrayFluxFraction,
118
119 };
120 }
121 }
122}
123
124#endif
table::Key< double > sigma1
Class to describe the properties of a detected object from an image.
Definition: Footprint.h:63
A set of pixels in an Image, including those pixels' actual values.
Record class that represents a peak in a Footprint.
Definition: Peak.h:42
A class to represent a 2-dimensional array of pixels.
Definition: Image.h:51
Represent a 2-dimensional array of bitmask pixels.
Definition: Mask.h:77
A class to manipulate images, masks, and variance as a single object.
Definition: MaskedImage.h:74
std::shared_ptr< lsst::afw::image::MaskedImage< ImagePixelT, MaskPixelT, VariancePixelT > > MaskedImagePtrT
Definition: BaselineUtils.h:26
static void medianFilter(ImageT const &img, ImageT &outimg, int halfsize)
Run a spatial median filter over the given input img, writing the results to out.
static const int STRAYFLUX_TO_POINT_SOURCES_WHEN_NECESSARY
Definition: BaselineUtils.h:63
std::shared_ptr< lsst::afw::image::Image< ImagePixelT > > ImagePtrT
Definition: BaselineUtils.h:28
static const int STRAYFLUX_NEAREST_FOOTPRINT
Definition: BaselineUtils.h:68
static void _find_stray_flux(lsst::afw::detection::Footprint const &foot, ImagePtrT tsum, MaskedImageT const &img, int strayFluxOptions, std::vector< std::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< std::shared_ptr< typename lsst::afw::detection::HeavyFootprint< ImagePixelT, MaskPixelT, VariancePixelT > > > &strays)
std::shared_ptr< lsst::afw::detection::Footprint > FootprintPtrT
Definition: BaselineUtils.h:33
lsst::afw::image::MaskedImage< ImagePixelT, MaskPixelT, VariancePixelT > MaskedImageT
Definition: BaselineUtils.h:25
static std::shared_ptr< lsst::afw::detection::Footprint > getSignificantEdgePixels(ImagePtrT, std::shared_ptr< lsst::afw::detection::Footprint >, ImagePixelT threshold)
Returns a list of pixels that are on the edge of the given Footprint sfoot* in image img,...
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)
Given an img, footprint foot, and peak, creates a symmetric template around the peak; produce a Maske...
static void makeMonotonic(ImageT &img, lsst::afw::detection::PeakRecord const &pk)
Given an image mimg and Peak location peak, overwrite mimg so that pixels further from the peak have ...
static std::vector< typename std::shared_ptr< lsst::afw::image::MaskedImage< ImagePixelT, MaskPixelT, VariancePixelT > > > apportionFlux(MaskedImageT const &img, lsst::afw::detection::Footprint const &foot, std::vector< typename std::shared_ptr< lsst::afw::image::Image< ImagePixelT > > > templates, std::vector< std::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< std::shared_ptr< typename lsst::afw::detection::HeavyFootprint< ImagePixelT, MaskPixelT, VariancePixelT > > > &strays, int strayFluxOptions, double clipStrayFluxFraction)
Splits flux in a given image img, within a given footprint foot, among a number of templates timgs,...
std::shared_ptr< lsst::afw::image::Mask< MaskPixelT > > MaskPtrT
Definition: BaselineUtils.h:30
lsst::afw::detection::HeavyFootprint< ImagePixelT, MaskPixelT, VariancePixelT > HeavyFootprintT
Definition: BaselineUtils.h:34
lsst::afw::image::Image< ImagePixelT > ImageT
Definition: BaselineUtils.h:27
lsst::afw::image::Mask< MaskPixelT > MaskT
Definition: BaselineUtils.h:29
static std::shared_ptr< lsst::afw::detection::Footprint > symmetrizeFootprint(lsst::afw::detection::Footprint const &foot, int cx, int cy)
Given a Footprint foot and peak cx,cy, returns a Footprint that is symmetric around the peak (with tw...
std::shared_ptr< lsst::afw::detection::HeavyFootprint< ImagePixelT, MaskPixelT, VariancePixelT > > HeavyFootprintPtrT
Definition: BaselineUtils.h:36
static void _sum_templates(std::vector< ImagePtrT > timgs, ImagePtrT tsum)
static bool hasSignificantFluxAtEdge(ImagePtrT, std::shared_ptr< lsst::afw::detection::Footprint >, ImagePixelT threshold)
Returns true if the given Footprint sfoot in image img has flux above value thresh at its edge.
lsst::afw::detection::Footprint FootprintT
Definition: BaselineUtils.h:32
static const int STRAYFLUX_TO_POINT_SOURCES_ALWAYS
Definition: BaselineUtils.h:64
float VariancePixel
default type for MaskedImage variance images
std::int32_t MaskPixel
default type for Masks and MaskedImage Masks