SourceXtractorPlusPlus
1.0.3
SourceXtractor++, the next generation SExtractor
Loading...
Searching...
No Matches
SEFramework
SEFramework
Image
ThresholdedImage.h
Go to the documentation of this file.
1
17
/*
18
* ThresholdedImage.h
19
*
20
* Created on: Jan 10, 2018
21
* Author: mschefer
22
*/
23
24
#ifndef _SEFRAMEWORK_IMAGE_THRESHOLDEDIMAGE_H_
25
#define _SEFRAMEWORK_IMAGE_THRESHOLDEDIMAGE_H_
26
27
#include <memory>
28
29
#include "
SEFramework/Image/Image.h
"
30
#include "
SEFramework/Image/ImageChunk.h
"
31
#include "
SEFramework/Image/ConstantImage.h
"
32
33
namespace
SourceXtractor
{
34
40
template
<
typename
T>
41
class
ThresholdedImage
:
public
Image
<T> {
42
43
protected
:
44
45
ThresholdedImage
(
std::shared_ptr
<
const
Image<T>
> image,
std::shared_ptr
<
const
Image<T>
> variance_map, T threshold_multiplier)
46
:
m_image
(image),
m_variance_map
(variance_map),
m_threshold_multiplier
(threshold_multiplier) {
47
assert(
m_image
->getWidth() ==
m_variance_map
->getWidth());
48
assert(
m_image
->getHeight() ==
m_variance_map
->getHeight());
49
};
50
51
public
:
52
56
virtual
~ThresholdedImage
() =
default
;
57
58
static
std::shared_ptr<ThresholdedImage<T>
>
create
(
59
std::shared_ptr
<
const
Image<T>
> image,
std::shared_ptr
<
const
Image<T>
> variance_map, T threshold_multiplier) {
60
return
std::shared_ptr<ThresholdedImage<T>
>(
new
ThresholdedImage<T>
(image, variance_map, threshold_multiplier));
61
}
62
63
std::string
getRepr
()
const override
{
64
return
"ThresholdedImage("
+
m_image
->getRepr() +
")"
;
65
}
66
67
int
getWidth
()
const override
{
68
return
m_image
->getWidth();
69
}
70
71
int
getHeight
()
const override
{
72
return
m_image
->getHeight();
73
}
74
75
std::shared_ptr<ImageChunk<T>
>
getChunk
(
int
x,
int
y,
int
width,
int
height)
const override
{
76
auto
img_chunk =
m_image
->getChunk(x, y, width, height);
77
auto
var_chunk =
m_variance_map
->getChunk(x, y, width, height);
78
auto
chunk =
UniversalImageChunk<T>::create
(
std::move
(*img_chunk));
79
for
(
int
iy = 0; iy < height; ++iy) {
80
for
(
int
ix = 0; ix < width; ++ix) {
81
chunk->at(ix, iy) -=
sqrt
(var_chunk->getValue(ix, iy)) *
m_threshold_multiplier
;
82
}
83
}
84
return
chunk;
85
}
86
87
private
:
88
std::shared_ptr<const Image<T>
>
m_image
,
m_variance_map
;
89
T
m_threshold_multiplier
;
90
91
};
/* End of ThresholdedImage class */
92
93
}
/* namespace SourceXtractor */
94
95
#endif
/* _SEFRAMEWORK_IMAGE_THRESHOLDEDIMAGE_H_ */
ConstantImage.h
ImageChunk.h
Image.h
std::string
SourceXtractor::Image
Interface representing an image.
Definition
Image.h:44
SourceXtractor::ThresholdedImage::getChunk
std::shared_ptr< ImageChunk< T > > getChunk(int x, int y, int width, int height) const override
Definition
ThresholdedImage.h:75
SourceXtractor::ThresholdedImage::create
static std::shared_ptr< ThresholdedImage< T > > create(std::shared_ptr< const Image< T > > image, std::shared_ptr< const Image< T > > variance_map, T threshold_multiplier)
Definition
ThresholdedImage.h:58
SourceXtractor::ThresholdedImage::m_variance_map
std::shared_ptr< const Image< T > > m_variance_map
Definition
ThresholdedImage.h:88
SourceXtractor::ThresholdedImage::m_threshold_multiplier
T m_threshold_multiplier
Definition
ThresholdedImage.h:89
SourceXtractor::ThresholdedImage::m_image
std::shared_ptr< const Image< T > > m_image
Definition
ThresholdedImage.h:88
SourceXtractor::ThresholdedImage::getHeight
int getHeight() const override
Returns the height of the image in pixels.
Definition
ThresholdedImage.h:71
SourceXtractor::ThresholdedImage::getWidth
int getWidth() const override
Returns the width of the image in pixels.
Definition
ThresholdedImage.h:67
SourceXtractor::ThresholdedImage::ThresholdedImage
ThresholdedImage(std::shared_ptr< const Image< T > > image, std::shared_ptr< const Image< T > > variance_map, T threshold_multiplier)
Definition
ThresholdedImage.h:45
SourceXtractor::ThresholdedImage::getRepr
std::string getRepr() const override
Get a string identifying this image in a human readable manner.
Definition
ThresholdedImage.h:63
SourceXtractor::ThresholdedImage::~ThresholdedImage
virtual ~ThresholdedImage()=default
Destructor.
SourceXtractor::UniversalImageChunk::create
static std::shared_ptr< UniversalImageChunk< T > > create(Args &&... args)
Definition
ImageChunk.h:144
std::move
T move(T... args)
SourceXtractor
Definition
Aperture.h:30
std::shared_ptr
std::sqrt
T sqrt(T... args)
Generated by
1.14.0