SourceXtractorPlusPlus
0.15
Please provide a description of the project.
Main Page
Related Pages
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
SEFramework
SEFramework
Frame
Frame.h
Go to the documentation of this file.
1
17
/*
18
* Frame.h
19
*
20
* Created on: Mar 13, 2017
21
* Author: mschefer
22
*/
23
24
#ifndef _SEFRAMEWORK_FRAME_FRAME_H_
25
#define _SEFRAMEWORK_FRAME_FRAME_H_
26
27
#include <algorithm>
28
29
#include "
SEUtils/Types.h
"
30
#include "
SEFramework/Image/Image.h
"
31
#include "
SEFramework/CoordinateSystem/CoordinateSystem.h
"
32
33
namespace
SourceXtractor {
34
35
enum
FrameImageLayer
{
36
LayerOriginalImage
= 0,
37
LayerInterpolatedImage
,
38
LayerSubtractedImage
,
39
LayerFilteredImage
,
40
LayerThresholdedImage
,
41
LayerSignalToNoiseMap
,
42
LayerOriginalVarianceMap
,
43
LayerUnfilteredVarianceMap
,
44
LayerVarianceMap
,
45
LayerDetectionThresholdMap
46
};
47
48
template
<
typename
T>
49
class
Frame
{
50
51
public
:
52
53
class
ImageFilter
{
54
public
:
55
virtual
~ImageFilter
() =
default
;
56
virtual
std::shared_ptr<Image<T>
>
processImage
(
std::shared_ptr
<
Image<T>
> image,
std::shared_ptr
<
Image<T>
> variance, T threshold)
const
= 0;
57
};
58
59
Frame
(
std::shared_ptr
<
Image<T>
> detection_image,
60
std::shared_ptr<WeightImage>
variance_map,
61
WeightImage::PixelType
variance_threshold,
62
std::shared_ptr<CoordinateSystem>
coordinate_system,
63
SeFloat
gain,
SeFloat
saturation,
int
interpolation_gap);
64
65
// FIXME: this simplified version is used in unit tests, get rid of it
66
Frame
(
std::shared_ptr
<
Image<T>
> detection_image,
67
std::shared_ptr<CoordinateSystem>
coordinate_system =
nullptr
,
68
std::shared_ptr<WeightImage>
variance_map =
nullptr
);
69
70
//
71
// Methods to get the image in one form or another
72
//
73
74
std::shared_ptr<Image<T>
>
getImage
(
FrameImageLayer
layer)
const
;
75
76
77
// Just the original image
78
std::shared_ptr<Image<T>
>
getOriginalImage
()
const
{
79
return
m_image
;
80
}
81
82
// Returns the image with bad pixels interpolated (if interpolation is active, otherwise returns original)
83
std::shared_ptr<Image<T>
>
getInterpolatedImage
()
const
;
84
85
// Get the image with the background subtracted
86
std::shared_ptr<Image<T>
>
getSubtractedImage
()
const
;
87
88
// Get the image with a filter applied to the subtracted image
89
std::shared_ptr<Image<T>
>
getFilteredImage
()
const
;
90
91
// Get the filtered image with the detection threshold subtracted from it
92
std::shared_ptr<Image<T>
>
getThresholdedImage
()
const
;
93
94
// Get the SNR image
95
std::shared_ptr<Image<T>
>
getSnrImage
()
const
;
96
97
//
98
// Methods to get the image in one form or another
99
//
100
101
std::shared_ptr<WeightImage>
getVarianceMap
()
const
;
102
103
std::shared_ptr<WeightImage>
getUnfilteredVarianceMap
()
const
;
104
105
std::shared_ptr<WeightImage>
getOriginalVarianceMap
()
const
{
106
return
m_variance_map
;
107
}
108
109
//
110
// Methods to get frame metadata
111
//
112
113
std::shared_ptr<CoordinateSystem>
getCoordinateSystem
()
const
{
114
return
m_coordinate_system
;
115
}
116
117
typename
WeightImage::PixelType
getVarianceThreshold
()
const
{
118
return
m_variance_threshold
;
119
}
120
121
SeFloat
getGain
()
const
{
122
return
m_gain
;
123
}
124
125
SeFloat
getSaturation
()
const
{
126
return
m_saturation
;
127
}
128
129
SeFloat
getBackgroundMedianRms
()
const
{
130
return
m_background_rms
;
131
}
132
133
std::shared_ptr<Image<T>
>
getDetectionThresholdMap
()
const
;
134
135
std::string
getLabel
()
const
{
136
return
m_label
;
137
}
138
139
//
140
// Setters
141
//
142
143
void
setVarianceMap
(
std::shared_ptr<WeightImage>
variance_map);
144
145
void
setVarianceThreshold
(
WeightImage::PixelType
threshold);
146
147
std::shared_ptr<Image<T>
>
getBackgroundLevelMap
()
const
;
148
149
void
setDetectionThreshold
(T detection_threshold);
150
151
void
setBackgroundLevel
(T background_level);
152
153
void
setBackgroundLevel
(
std::shared_ptr
<
Image<T>
> background_level_map, T background_rms);
154
155
void
setFilter
(
std::shared_ptr<ImageFilter>
filter);
156
157
void
setLabel
(
const
std::string
&label);
158
159
private
:
160
161
void
applyFilter
();
162
void
applyInterpolation
();
163
164
std::shared_ptr<Image<T>
>
m_image
;
165
std::shared_ptr<WeightImage>
m_variance_map
;
166
std::shared_ptr<Image<T>
>
m_background_level_map
;
167
168
std::shared_ptr<CoordinateSystem>
m_coordinate_system
;
169
170
SeFloat
m_gain
;
171
SeFloat
m_saturation
;
172
SeFloat
m_background_rms
;
173
174
T
m_detection_threshold
;
175
typename
WeightImage::PixelType
m_variance_threshold
;
176
177
int
m_interpolation_gap
;
// max interpolation gap, 0 == no interpolation
178
179
std::shared_ptr<ImageFilter>
m_filter
;
180
std::shared_ptr<Image<T>
>
m_interpolated_image
;
181
std::shared_ptr<Image<WeightImage::PixelType>
>
m_interpolated_variance
;
182
std::shared_ptr<Image<T>
>
m_filtered_image
;
183
std::shared_ptr<Image<T>
>
m_filtered_variance_map
;
184
185
std::string
m_label
;
186
};
187
188
using
DetectionImageFrame
=
Frame<DetectionImage::PixelType>
;
189
using
MeasurementImageFrame
=
Frame<MeasurementImage::PixelType>
;
190
191
}
192
193
#endif
/* _SEFRAMEWORK_FRAME_FRAME_H_ */
SourceXtractor::Frame::getSnrImage
std::shared_ptr< Image< T > > getSnrImage() const
Definition:
Frame.cpp:141
SourceXtractor::LayerUnfilteredVarianceMap
Definition:
Frame.h:43
std::shared_ptr
Types.h
SourceXtractor::LayerDetectionThresholdMap
Definition:
Frame.h:45
SourceXtractor::Frame::getOriginalImage
std::shared_ptr< Image< T > > getOriginalImage() const
Definition:
Frame.h:78
SourceXtractor::Frame::m_image
std::shared_ptr< Image< T > > m_image
Definition:
Frame.h:164
SourceXtractor::Frame::getThresholdedImage
std::shared_ptr< Image< T > > getThresholdedImage() const
Definition:
Frame.cpp:135
SourceXtractor::Frame::getVarianceMap
std::shared_ptr< WeightImage > getVarianceMap() const
Definition:
Frame.cpp:147
SourceXtractor::Frame::ImageFilter
Definition:
Frame.h:53
SourceXtractor::Image::PixelType
T PixelType
Definition:
Image.h:47
SourceXtractor::Frame::m_filtered_image
std::shared_ptr< Image< T > > m_filtered_image
Definition:
Frame.h:182
SourceXtractor::LayerInterpolatedImage
Definition:
Frame.h:37
SourceXtractor::Frame::m_saturation
SeFloat m_saturation
Definition:
Frame.h:171
SourceXtractor::Frame::getBackgroundLevelMap
std::shared_ptr< Image< T > > getBackgroundLevelMap() const
Definition:
Frame.cpp:205
SourceXtractor::Frame
Definition:
Frame.h:49
SourceXtractor::LayerOriginalImage
Definition:
Frame.h:36
SourceXtractor::Frame::ImageFilter::~ImageFilter
virtual ~ImageFilter()=default
SourceXtractor::Frame::getLabel
std::string getLabel() const
Definition:
Frame.h:135
SourceXtractor::SeFloat
SeFloat32 SeFloat
Definition:
Types.h:32
SourceXtractor::LayerOriginalVarianceMap
Definition:
Frame.h:42
SourceXtractor::Frame::applyInterpolation
void applyInterpolation()
Definition:
Frame.cpp:275
SourceXtractor::Frame::m_interpolated_image
std::shared_ptr< Image< T > > m_interpolated_image
Definition:
Frame.h:180
SourceXtractor::Frame::getUnfilteredVarianceMap
std::shared_ptr< WeightImage > getUnfilteredVarianceMap() const
Definition:
Frame.cpp:153
SourceXtractor::Frame::getDetectionThresholdMap
std::shared_ptr< Image< T > > getDetectionThresholdMap() const
Definition:
Frame.cpp:164
SourceXtractor::LayerVarianceMap
Definition:
Frame.h:44
SourceXtractor::Frame::m_variance_map
std::shared_ptr< WeightImage > m_variance_map
Definition:
Frame.h:165
SourceXtractor::Frame::m_interpolated_variance
std::shared_ptr< Image< WeightImage::PixelType > > m_interpolated_variance
Definition:
Frame.h:181
std::string
STL class.
SourceXtractor::Frame::ImageFilter::processImage
virtual std::shared_ptr< Image< T > > processImage(std::shared_ptr< Image< T >> image, std::shared_ptr< Image< T >> variance, T threshold) const =0
Image.h
SourceXtractor::Frame::getGain
SeFloat getGain() const
Definition:
Frame.h:121
SourceXtractor::Frame::m_label
std::string m_label
Definition:
Frame.h:185
SourceXtractor::Frame::getOriginalVarianceMap
std::shared_ptr< WeightImage > getOriginalVarianceMap() const
Definition:
Frame.h:105
SourceXtractor::Frame::applyFilter
void applyFilter()
Definition:
Frame.cpp:255
SourceXtractor::Frame::m_background_level_map
std::shared_ptr< Image< T > > m_background_level_map
Definition:
Frame.h:166
SourceXtractor::Frame::getFilteredImage
std::shared_ptr< Image< T > > getFilteredImage() const
Definition:
Frame.cpp:129
SourceXtractor::Frame::getCoordinateSystem
std::shared_ptr< CoordinateSystem > getCoordinateSystem() const
Definition:
Frame.h:113
SourceXtractor::Frame::m_detection_threshold
T m_detection_threshold
Definition:
Frame.h:174
SourceXtractor::Frame::getSubtractedImage
std::shared_ptr< Image< T > > getSubtractedImage() const
Definition:
Frame.cpp:123
SourceXtractor::LayerSubtractedImage
Definition:
Frame.h:38
SourceXtractor::LayerSignalToNoiseMap
Definition:
Frame.h:41
SourceXtractor::Frame::setVarianceThreshold
void setVarianceThreshold(WeightImage::PixelType threshold)
Definition:
Frame.cpp:190
SourceXtractor::Frame::setLabel
void setLabel(const std::string &label)
Definition:
Frame.cpp:249
SourceXtractor::Frame::m_filter
std::shared_ptr< ImageFilter > m_filter
Definition:
Frame.h:179
SourceXtractor::LayerThresholdedImage
Definition:
Frame.h:40
CoordinateSystem.h
SourceXtractor::Frame::m_filtered_variance_map
std::shared_ptr< Image< T > > m_filtered_variance_map
Definition:
Frame.h:183
SourceXtractor::Frame::m_background_rms
SeFloat m_background_rms
Definition:
Frame.h:172
SourceXtractor::FrameImageLayer
FrameImageLayer
Definition:
Frame.h:35
SourceXtractor::Frame::m_gain
SeFloat m_gain
Definition:
Frame.h:170
SourceXtractor::Frame::setVarianceMap
void setVarianceMap(std::shared_ptr< WeightImage > variance_map)
Definition:
Frame.cpp:175
SourceXtractor::Frame::Frame
Frame(std::shared_ptr< Image< T >> detection_image, std::shared_ptr< WeightImage > variance_map, WeightImage::PixelType variance_threshold, std::shared_ptr< CoordinateSystem > coordinate_system, SeFloat gain, SeFloat saturation, int interpolation_gap)
Definition:
Frame.cpp:31
SourceXtractor::Frame::m_coordinate_system
std::shared_ptr< CoordinateSystem > m_coordinate_system
Definition:
Frame.h:168
SourceXtractor::Frame::setDetectionThreshold
void setDetectionThreshold(T detection_threshold)
Definition:
Frame.cpp:217
SourceXtractor::Frame::m_variance_threshold
WeightImage::PixelType m_variance_threshold
Definition:
Frame.h:175
SourceXtractor::Image
Interface representing an image.
Definition:
Image.h:43
SourceXtractor::Frame::setFilter
void setFilter(std::shared_ptr< ImageFilter > filter)
Definition:
Frame.cpp:240
SourceXtractor::Frame::m_interpolation_gap
int m_interpolation_gap
Definition:
Frame.h:177
SourceXtractor::Frame::setBackgroundLevel
void setBackgroundLevel(T background_level)
Definition:
Frame.cpp:223
SourceXtractor::Frame::getInterpolatedImage
std::shared_ptr< Image< T > > getInterpolatedImage() const
Definition:
Frame.cpp:112
SourceXtractor::Frame::getImage
std::shared_ptr< Image< T > > getImage(FrameImageLayer layer) const
Definition:
Frame.cpp:74
SourceXtractor::Frame::getBackgroundMedianRms
SeFloat getBackgroundMedianRms() const
Definition:
Frame.h:129
SourceXtractor::LayerFilteredImage
Definition:
Frame.h:39
SourceXtractor::Frame::getSaturation
SeFloat getSaturation() const
Definition:
Frame.h:125
SourceXtractor::Frame::getVarianceThreshold
WeightImage::PixelType getVarianceThreshold() const
Definition:
Frame.h:117
Generated by
1.8.5