lsst.afw
g3a5ebb7d8a+28b83bf6a5
Toggle main menu visibility
Loading...
Searching...
No Matches
include
lsst
afw
detection
FootprintSet.h
Go to the documentation of this file.
1
// -*- lsst-c++ -*-
2
/*
3
* LSST Data Management System
4
* Copyright 2008, 2009, 2010 LSST Corporation.
5
*
6
* This product includes software developed by the
7
* LSST Project (http://www.lsst.org/).
8
*
9
* This program is free software: you can redistribute it and/or modify
10
* it under the terms of the GNU General Public License as published by
11
* the Free Software Foundation, either version 3 of the License, or
12
* (at your option) any later version.
13
*
14
* This program is distributed in the hope that it will be useful,
15
* but WITHOUT ANY WARRANTY; without even the implied warranty of
16
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
* GNU General Public License for more details.
18
*
19
* You should have received a copy of the LSST License Statement and
20
* the GNU General Public License along with this program. If not,
21
* see <http://www.lsstcorp.org/LegalNotices/>.
22
*/
23
24
#if !defined(LSST_DETECTION_FOOTPRINT_SET_H)
25
#define LSST_DETECTION_FOOTPRINT_SET_H
26
/*
27
* Represent a collections of footprints associated with image data
28
*/
29
#include <cstdint>
30
31
#include "
lsst/geom.h
"
32
#include "
lsst/afw/detection/Threshold.h
"
33
#include "
lsst/afw/detection/Footprint.h
"
34
#include "
lsst/afw/detection/FootprintCtrl.h
"
35
#include "
lsst/afw/detection/Peak.h
"
36
#include "
lsst/afw/image/MaskedImage.h
"
37
#include "
lsst/afw/table/Source.h
"
38
#include "
lsst/afw/table/Schema.h
"
39
40
namespace
lsst
{
41
namespace
afw
{
42
namespace
detection
{
43
50
using
FootprintIdPixel
=
std::uint64_t
;
51
55
class
FootprintSet
{
56
public
:
58
using
FootprintList
=
std::vector<std::shared_ptr<Footprint>
>;
59
71
template
<
typename
ImagePixelT>
72
FootprintSet
(
image::Image<ImagePixelT>
const
& img,
Threshold
const
& threshold,
int
const
npixMin = 1,
73
bool
const
setPeaks =
true
,
74
table::Schema
const
& peakSchema =
PeakTable::makeMinimalSchema
());
75
83
template
<
typename
MaskPixelT>
84
FootprintSet
(
image::Mask<MaskPixelT>
const
& img,
Threshold
const
& threshold,
int
const
npixMin = 1);
85
104
template
<
typename
ImagePixelT,
typename
MaskPixelT>
105
FootprintSet
(
image::MaskedImage<ImagePixelT, MaskPixelT>
const
& img,
Threshold
const
& threshold,
106
std::string
const
& planeName =
""
,
int
const
npixMin = 1,
bool
const
setPeaks =
true
);
107
113
FootprintSet
(
lsst::geom::Box2I
region);
119
FootprintSet
(
FootprintSet
const
& rhs);
120
FootprintSet
(
FootprintSet
const
& set,
int
rGrow,
FootprintControl
const
& ctrl);
121
FootprintSet
(
FootprintSet
&& rhs);
122
~FootprintSet
();
134
FootprintSet
(
FootprintSet
const
& set,
int
rGrow,
bool
isotropic =
true
);
140
FootprintSet
(
FootprintSet
const
& footprints1,
FootprintSet
const
& footprints2,
bool
const
includePeaks);
141
143
FootprintSet
&
operator=
(
FootprintSet
const
& rhs);
144
FootprintSet
&
operator=
(
FootprintSet
&& rhs);
145
146
void
swap
(
FootprintSet
& rhs)
noexcept
{
147
using
std::swap
;
// See Meyers, Effective C++, Item 25
148
swap
(*_footprints, *rhs.getFootprints());
149
lsst::geom::Box2I
rhsRegion = rhs.getRegion();
150
rhs.setRegion(
getRegion
());
151
setRegion
(rhsRegion);
152
}
153
154
void
swapFootprintList
(
FootprintList
& rhs)
noexcept
{
155
using
std::swap
;
156
swap
(*_footprints, rhs);
157
}
158
162
std::shared_ptr<FootprintList>
getFootprints
() {
return
_footprints; }
163
167
void
setFootprints
(
std::shared_ptr<FootprintList>
footprints) { _footprints = footprints; }
168
172
std::shared_ptr<FootprintList const>
const
getFootprints
()
const
{
return
_footprints; }
173
182
void
makeSources
(
afw::table::SourceCatalog
& catalog)
const
;
183
191
void
setRegion
(
lsst::geom::Box2I
const
& region);
192
196
lsst::geom::Box2I
const
getRegion
()
const
{
return
_region; }
197
203
std::shared_ptr<image::Image<FootprintIdPixel>
>
insertIntoImage
()
const
;
204
205
template
<
typename
MaskPixelT>
206
void
setMask
(
image::Mask<MaskPixelT>
* mask,
207
std::string
const
& planeName
208
) {
209
for
(
auto
const
& foot : *_footprints) {
210
foot->getSpans()->setMask(*mask,
image::Mask<MaskPixelT>::getPlaneBitMask
(planeName));
211
}
212
}
213
214
template
<
typename
MaskPixelT>
215
void
setMask
(
std::shared_ptr
<
image::Mask<MaskPixelT>
> mask,
216
std::string
const
& planeName
217
) {
218
setMask
(mask.get(), planeName);
219
}
220
229
void
merge
(
FootprintSet
const
& rhs,
int
tGrow = 0,
int
rGrow = 0,
bool
isotropic =
true
);
230
237
template
<
typename
ImagePixelT,
typename
MaskPixelT>
238
void
makeHeavy
(
image::MaskedImage<ImagePixelT, MaskPixelT>
const
& mimg,
239
HeavyFootprintCtrl
const
* ctrl =
nullptr
);
240
241
private
:
242
std::shared_ptr<FootprintList>
_footprints;
243
lsst::geom::Box2I
_region;
244
};
245
252
std::ostream
&
operator<<
(
std::ostream
& os,
FootprintSet
const
& rhs);
253
254
}
// namespace detection
255
}
// namespace afw
256
}
// namespace lsst
257
258
#endif
Footprint.h
FootprintCtrl.h
MaskedImage.h
Peak.h
Schema.h
Source.h
Threshold.h
std::ostream
std::string
lsst::afw::detection::FootprintControl
A Control Object for Footprints, controlling e.g.
Definition
FootprintCtrl.h:34
lsst::afw::detection::FootprintSet
A set of Footprints, associated with a MaskedImage.
Definition
FootprintSet.h:55
lsst::afw::detection::FootprintSet::setFootprints
void setFootprints(std::shared_ptr< FootprintList > footprints)
: Set the Footprints of detected objects
Definition
FootprintSet.h:167
lsst::afw::detection::FootprintSet::operator=
FootprintSet & operator=(FootprintSet &&rhs)
lsst::afw::detection::FootprintSet::FootprintSet
FootprintSet(image::Image< ImagePixelT > const &img, Threshold const &threshold, int const npixMin=1, bool const setPeaks=true, table::Schema const &peakSchema=PeakTable::makeMinimalSchema())
Find a FootprintSet given an Image and a threshold.
lsst::afw::detection::FootprintSet::setMask
void setMask(image::Mask< MaskPixelT > *mask, std::string const &planeName)
Definition
FootprintSet.h:206
lsst::afw::detection::FootprintSet::getFootprints
std::shared_ptr< FootprintList > getFootprints()
: Return the Footprints of detected objects
Definition
FootprintSet.h:162
lsst::afw::detection::FootprintSet::merge
void merge(FootprintSet const &rhs, int tGrow=0, int rGrow=0, bool isotropic=true)
Merge a FootprintSet into *this.
lsst::afw::detection::FootprintSet::FootprintSet
FootprintSet(lsst::geom::Box2I region)
Construct an empty FootprintSet given a region that its footprints would have lived in.
lsst::afw::detection::FootprintSet::FootprintSet
FootprintSet(FootprintSet const &set, int rGrow, FootprintControl const &ctrl)
lsst::afw::detection::FootprintSet::setMask
void setMask(std::shared_ptr< image::Mask< MaskPixelT > > mask, std::string const &planeName)
Definition
FootprintSet.h:215
lsst::afw::detection::FootprintSet::FootprintList
std::vector< std::shared_ptr< Footprint > > FootprintList
The FootprintSet's set of Footprints.
Definition
FootprintSet.h:58
lsst::afw::detection::FootprintSet::~FootprintSet
~FootprintSet()
lsst::afw::detection::FootprintSet::FootprintSet
FootprintSet(FootprintSet const &set, int rGrow, bool isotropic=true)
Grow all the Footprints in the input FootprintSet, returning a new FootprintSet.
lsst::afw::detection::FootprintSet::getFootprints
std::shared_ptr< FootprintList const > const getFootprints() const
Retun the Footprints of detected objects.
Definition
FootprintSet.h:172
lsst::afw::detection::FootprintSet::FootprintSet
FootprintSet(FootprintSet const &rhs)
Copy constructor.
lsst::afw::detection::FootprintSet::operator=
FootprintSet & operator=(FootprintSet const &rhs)
Assignment operator.
lsst::afw::detection::FootprintSet::FootprintSet
FootprintSet(image::Mask< MaskPixelT > const &img, Threshold const &threshold, int const npixMin=1)
Find a FootprintSet given a Mask and a threshold.
lsst::afw::detection::FootprintSet::makeHeavy
void makeHeavy(image::MaskedImage< ImagePixelT, MaskPixelT > const &mimg, HeavyFootprintCtrl const *ctrl=nullptr)
Convert all the Footprints in the FootprintSet to be HeavyFootprints.
lsst::afw::detection::FootprintSet::swap
void swap(FootprintSet &rhs) noexcept
Definition
FootprintSet.h:146
lsst::afw::detection::FootprintSet::getRegion
lsst::geom::Box2I const getRegion() const
Return the corners of the MaskedImage.
Definition
FootprintSet.h:196
lsst::afw::detection::FootprintSet::makeSources
void makeSources(afw::table::SourceCatalog &catalog) const
Add a new record corresponding to each footprint to a SourceCatalog.
lsst::afw::detection::FootprintSet::FootprintSet
FootprintSet(FootprintSet &&rhs)
lsst::afw::detection::FootprintSet::FootprintSet
FootprintSet(image::MaskedImage< ImagePixelT, MaskPixelT > const &img, Threshold const &threshold, std::string const &planeName="", int const npixMin=1, bool const setPeaks=true)
Find a FootprintSet given a MaskedImage and a threshold.
lsst::afw::detection::FootprintSet::setRegion
void setRegion(lsst::geom::Box2I const ®ion)
Set the corners of the FootprintSet's MaskedImage to region.
lsst::afw::detection::FootprintSet::insertIntoImage
std::shared_ptr< image::Image< FootprintIdPixel > > insertIntoImage() const
Return an Image with pixels set to the Footprints in the FootprintSet.
lsst::afw::detection::FootprintSet::FootprintSet
FootprintSet(FootprintSet const &footprints1, FootprintSet const &footprints2, bool const includePeaks)
Return the FootprintSet corresponding to the merge of two input FootprintSets.
lsst::afw::detection::FootprintSet::swapFootprintList
void swapFootprintList(FootprintList &rhs) noexcept
Definition
FootprintSet.h:154
lsst::afw::detection::HeavyFootprintCtrl
A control object for HeavyFootprints.
Definition
FootprintCtrl.h:99
lsst::afw::detection::PeakTable::makeMinimalSchema
static afw::table::Schema makeMinimalSchema()
Return a minimal schema for Peak tables and records.
Definition
Peak.h:137
lsst::afw::detection::Threshold
A Threshold is used to pass a threshold value to detection algorithms.
Definition
Threshold.h:43
lsst::afw::image::Image
A class to represent a 2-dimensional array of pixels.
Definition
Image.h:51
lsst::afw::image::Mask
Represent a 2-dimensional array of bitmask pixels.
Definition
Mask.h:82
lsst::afw::image::Mask::getPlaneBitMask
static MaskPixelT getPlaneBitMask(const std::vector< std::string > &names)
Return the bitmask corresponding to a vector of plane names OR'd together.
Definition
Mask.cc:376
lsst::afw::image::MaskedImage
A class to manipulate images, masks, and variance as a single object.
Definition
MaskedImage.h:74
lsst::afw::table._source.SourceCatalog
Definition
_source.py:33
lsst::afw::table::Schema
Defines the fields and offsets for a table.
Definition
Schema.h:51
lsst::geom::Box2I
geom.h
std::uint64_t
lsst::afw::detection
Definition
Footprint.h:50
lsst::afw::detection::operator<<
std::ostream & operator<<(std::ostream &os, Footprint const &rhs)
Print a Footprint to the stream.
Definition
Footprint.cc:443
lsst::afw::detection::FootprintIdPixel
std::uint64_t FootprintIdPixel
Pixel type for FootprintSet::insertIntoImage().
Definition
FootprintSet.h:50
lsst::afw
Definition
imageAlgorithm.dox:1
lsst
std::shared_ptr
std::swap
T swap(T... args)
std::vector
Generated on
for lsst.afw by
1.17.0