LSSTApplications
20.0.0
LSSTDataManagementBasePackage
stack
1a1d771
Linux64
afw
20.0.0
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/image/MaskedImage.h
"
36
#include "
lsst/afw/table/Source.h
"
37
38
namespace
lsst
{
39
namespace
afw
{
40
namespace
detection {
41
48
typedef
std::uint64_t
FootprintIdPixel
;
49
53
class
FootprintSet
{
54
public
:
56
typedef
std::vector<std::shared_ptr<Footprint>
>
FootprintList
;
57
66
template
<
typename
ImagePixelT>
67
FootprintSet
(
image::Image<ImagePixelT>
const
& img,
Threshold
const
& threshold,
int
const
npixMin = 1,
68
bool
const
setPeaks =
true
);
69
77
template
<
typename
MaskPixelT>
78
FootprintSet
(
image::Mask<MaskPixelT>
const
& img,
Threshold
const
& threshold,
int
const
npixMin = 1);
79
98
template
<
typename
ImagePixelT,
typename
MaskPixelT>
99
FootprintSet
(
image::MaskedImage<ImagePixelT, MaskPixelT>
const
& img,
Threshold
const
& threshold,
100
std::string
const
& planeName =
""
,
int
const
npixMin = 1,
bool
const
setPeaks =
true
);
101
107
FootprintSet
(
lsst::geom::Box2I
region);
113
FootprintSet
(
FootprintSet
const
& rhs);
114
FootprintSet
(
FootprintSet
const
&
set
,
int
rGrow,
FootprintControl
const
& ctrl);
115
FootprintSet
(
FootprintSet
&& rhs);
116
~FootprintSet
();
128
FootprintSet
(
FootprintSet
const
&
set
,
int
rGrow,
bool
isotropic =
true
);
134
FootprintSet
(
FootprintSet
const
& footprints1,
FootprintSet
const
& footprints2,
bool
const
includePeaks);
135
137
FootprintSet
&
operator=
(
FootprintSet
const
& rhs);
138
FootprintSet
&
operator=
(
FootprintSet
&& rhs);
139
140
void
swap
(
FootprintSet
& rhs) noexcept {
141
using
std::swap
;
// See Meyers, Effective C++, Item 25
142
swap
(*_footprints, *rhs.getFootprints());
143
lsst::geom::Box2I
rhsRegion = rhs.getRegion();
144
rhs.setRegion(
getRegion
());
145
setRegion
(rhsRegion);
146
}
147
148
void
swapFootprintList
(
FootprintList
& rhs) noexcept {
149
using
std::swap
;
150
swap
(*_footprints, rhs);
151
}
152
156
std::shared_ptr<FootprintList>
getFootprints
() {
return
_footprints; }
157
161
void
setFootprints
(
std::shared_ptr<FootprintList>
footprints) { _footprints = footprints; }
162
166
std::shared_ptr<FootprintList const>
const
getFootprints
()
const
{
return
_footprints; }
167
176
void
makeSources
(
afw::table::SourceCatalog
& catalog)
const
;
177
185
void
setRegion
(
lsst::geom::Box2I
const
& region);
186
190
lsst::geom::Box2I
const
getRegion
()
const
{
return
_region; }
191
197
std::shared_ptr<image::Image<FootprintIdPixel>
>
insertIntoImage
()
const
;
198
199
template
<
typename
MaskPixelT>
200
void
setMask
(
image::Mask<MaskPixelT>
*
mask
,
201
std::string
const
& planeName
202
) {
203
for
(
auto
const
& foot : *_footprints) {
204
foot->getSpans()->setMask(*
mask
,
image::Mask<MaskPixelT>::getPlaneBitMask
(planeName));
205
}
206
}
207
208
template
<
typename
MaskPixelT>
209
void
setMask
(
std::shared_ptr
<
image::Mask<MaskPixelT>
>
mask
,
210
std::string
const
& planeName
211
) {
212
setMask
(
mask
.get(), planeName);
213
}
214
223
void
merge
(
FootprintSet
const
& rhs,
int
tGrow = 0,
int
rGrow = 0,
bool
isotropic =
true
);
224
231
template
<
typename
ImagePixelT,
typename
MaskPixelT>
232
void
makeHeavy
(
image::MaskedImage<ImagePixelT, MaskPixelT>
const
& mimg,
233
HeavyFootprintCtrl
const
* ctrl = NULL);
234
235
private
:
236
std::shared_ptr<FootprintList>
_footprints;
237
lsst::geom::Box2I
_region;
238
};
239
}
// namespace detection
240
}
// namespace afw
241
}
// namespace lsst
242
243
#endif
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::setMask
void setMask(std::shared_ptr< image::Mask< MaskPixelT >> mask, std::string const &planeName)
Definition:
FootprintSet.h:209
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::getRegion
lsst::geom::Box2I const getRegion() const
Return the corners of the MaskedImage.
Definition:
FootprintSet.h:190
lsst::afw::detection::FootprintSet::FootprintSet
FootprintSet(FootprintSet &&rhs)
lsst::afw::detection::FootprintSet::setMask
void setMask(image::Mask< MaskPixelT > *mask, std::string const &planeName)
Definition:
FootprintSet.h:200
std::string
STL class.
lsst::afw::detection::HeavyFootprintCtrl
A control object for HeavyFootprints.
Definition:
FootprintCtrl.h:99
std::shared_ptr
STL class.
lsst::afw::detection::FootprintSet::makeHeavy
void makeHeavy(image::MaskedImage< ImagePixelT, MaskPixelT > const &mimg, HeavyFootprintCtrl const *ctrl=NULL)
Convert all the Footprints in the FootprintSet to be HeavyFootprints.
lsst::afw::image::Mask
Represent a 2-dimensional array of bitmask pixels.
Definition:
Mask.h:77
Threshold.h
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::operator=
FootprintSet & operator=(FootprintSet &&rhs)
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::FootprintSet
FootprintSet(FootprintSet const &rhs)
Copy constructor.
MaskedImage.h
std::vector
STL class.
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
Definition:
imageAlgorithm.dox:1
lsst::afw::detection::FootprintSet::~FootprintSet
~FootprintSet()
lsst::afw::detection::FootprintSet::FootprintSet
FootprintSet(FootprintSet const &set, int rGrow, FootprintControl const &ctrl)
lsst::afw::detection::FootprintSet::FootprintSet
FootprintSet(image::Image< ImagePixelT > const &img, Threshold const &threshold, int const npixMin=1, bool const setPeaks=true)
Find a FootprintSet given an Image and a threshold.
lsst::afw::detection::FootprintSet::FootprintList
std::vector< std::shared_ptr< Footprint > > FootprintList
The FootprintSet's set of Footprints.
Definition:
FootprintSet.h:56
geom.h
mask
afw::table::Key< afw::table::Array< MaskPixelT > > mask
Definition:
HeavyFootprint.cc:217
lsst::afw::detection::FootprintSet::getFootprints
std::shared_ptr< FootprintList > getFootprints()
: Return the Footprints of detected objects
Definition:
FootprintSet.h:156
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::FootprintControl
A Control Object for Footprints, controlling e.g.
Definition:
FootprintCtrl.h:34
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
A set of Footprints, associated with a MaskedImage.
Definition:
FootprintSet.h:53
lsst::afw::image::MaskedImage
A class to manipulate images, masks, and variance as a single object.
Definition:
MaskedImage.h:73
lsst::afw::detection::FootprintSet::swapFootprintList
void swapFootprintList(FootprintList &rhs) noexcept
Definition:
FootprintSet.h:148
lsst::afw::table._source.SourceCatalog
Definition:
_source.py:33
lsst::afw::detection::Threshold
A Threshold is used to pass a threshold value to detection algorithms.
Definition:
Threshold.h:43
lsst::afw::detection::FootprintSet::swap
void swap(FootprintSet &rhs) noexcept
Definition:
FootprintSet.h:140
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.
Footprint.h
std::uint64_t
Source.h
lsst
A base class for image defects.
Definition:
imageAlgorithm.dox:1
std::swap
T swap(T... args)
FootprintCtrl.h
lsst::geom::Box2I
An integer coordinate rectangle.
Definition:
Box.h:55
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::image::Image< ImagePixelT >
lsst::afw::detection::FootprintIdPixel
std::uint64_t FootprintIdPixel
Pixel type for FootprintSet::insertIntoImage()
Definition:
FootprintSet.h:48
lsst::afw::detection::FootprintSet::setFootprints
void setFootprints(std::shared_ptr< FootprintList > footprints)
: Set the Footprints of detected objects
Definition:
FootprintSet.h:161
set
daf::base::PropertySet * set
Definition:
fits.cc:912
lsst::afw::detection::FootprintSet::getFootprints
std::shared_ptr< FootprintList const > const getFootprints() const
Retun the Footprints of detected objects.
Definition:
FootprintSet.h:166
Generated on Wed Jun 24 2020 18:09:58 for LSSTApplications by
1.8.18