SourceXtractorPlusPlus
0.21
SourceXtractor++, the next generation SExtractor
Loading...
Searching...
No Matches
SEImplementation
SEImplementation
Plugin
Vignet
VignetArray.h
Go to the documentation of this file.
1
18
#ifndef _SEIMPLEMENTATION_PLUGIN_VIGNETARRAY_H_
19
#define _SEIMPLEMENTATION_PLUGIN_VIGNETARRAY_H_
20
21
#include <NdArray/NdArray.h>
22
#include <AlexandriaKernel/memory_tools.h>
23
#include "
SEFramework/Image/Image.h
"
24
#include "
SEFramework/Property/Property.h
"
25
#include "
SEImplementation/Plugin/Vignet/Vignet.h
"
26
27
namespace
SourceXtractor
{
28
29
class
VignetArray
:
public
Property
{
30
public
:
31
explicit
VignetArray
(
const
std::vector
<
std::reference_wrapper<const Vignet>
>& vignets) {
32
const
auto
& representative = vignets.front().get().getVignet();
33
34
if
(vignets.size() > 1) {
35
initMultiple
(vignets, representative);
36
}
37
else
{
38
initSingle
(representative);
39
}
40
}
41
42
const
Euclid::NdArray::NdArray<DetectionImage::PixelType>
&
getVignets
()
const
{
43
return
*
m_vignets
;
44
}
45
46
private
:
47
void
initSingle
(
const
VectorImage <DetectionImage::PixelType>& representative) {
48
std::vector<size_t>
shape{
49
static_cast<
size_t
>
(representative.
getWidth
()),
static_cast<
size_t
>
(representative.
getHeight
())
50
};
51
m_vignets
=
Euclid::make_unique<Euclid::NdArray::NdArray<DetectionImage::PixelType>
>(shape);
52
53
for
(
int
x
= 0;
x
< representative.
getWidth
(); ++
x
) {
54
for
(
int
y
= 0;
y
< representative.
getHeight
(); ++
y
) {
55
m_vignets
->
at
(
x
,
y
) = representative.
getValue
(
x
,
y
);
56
}
57
}
58
}
59
60
void
initMultiple
(
const
std::vector
<
std::reference_wrapper<const Vignet>
>& vignets,
61
const
VectorImage <DetectionImage::PixelType>& representative) {
62
std::vector<size_t>
shape{
63
vignets.
size
(),
static_cast<
size_t
>
(representative.
getWidth
()),
static_cast<
size_t
>
(representative.
getHeight
())
64
};
65
m_vignets
=
Euclid::make_unique<Euclid::NdArray::NdArray<DetectionImage::PixelType>
>(shape);
66
67
for
(
size_t
v = 0; v < vignets.size(); ++v) {
68
const
auto
& img = vignets[v].
get
().getVignet();
69
assert (img.getWidth() == representative.
getWidth
());
70
assert (img.getHeight() == representative.
getHeight
());
71
for
(
int
x
= 0;
x
< img.getWidth(); ++
x
) {
72
for
(
int
y
= 0;
y
< img.getHeight(); ++
y
) {
73
m_vignets
->
at
(v,
x
,
y
) = img.getValue(
x
,
y
);
74
}
75
}
76
}
77
}
78
79
std::unique_ptr<Euclid::NdArray::NdArray<DetectionImage::PixelType>
>
m_vignets
;
80
};
81
82
}
// end of namespace SourceXtractor
83
84
#endif
/* _SEIMPLEMENTATION_PLUGIN_VIGNETARRAY_H_ */
Image.h
x
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > x
Definition
MoffatModelFittingTask.cpp:94
y
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > y
Definition
MoffatModelFittingTask.cpp:94
Property.h
Vignet.h
Euclid::NdArray::NdArray
Euclid::NdArray::NdArray::at
T & at(const std::vector< size_t > &coords)
SourceXtractor::Property
Base class for all Properties. (has no actual content)
Definition
Property.h:33
SourceXtractor::VectorImage::getWidth
int getWidth() const final
Returns the width of the image in pixels.
Definition
VectorImage.h:112
SourceXtractor::VectorImage::getHeight
int getHeight() const final
Returns the height of the image in pixels.
Definition
VectorImage.h:108
SourceXtractor::VectorImage::getValue
T getValue(int x, int y) const
Definition
VectorImage.h:116
SourceXtractor::VignetArray
Definition
VignetArray.h:29
SourceXtractor::VignetArray::initMultiple
void initMultiple(const std::vector< std::reference_wrapper< const Vignet > > &vignets, const VectorImage< DetectionImage::PixelType > &representative)
Definition
VignetArray.h:60
SourceXtractor::VignetArray::m_vignets
std::unique_ptr< Euclid::NdArray::NdArray< DetectionImage::PixelType > > m_vignets
Definition
VignetArray.h:79
SourceXtractor::VignetArray::initSingle
void initSingle(const VectorImage< DetectionImage::PixelType > &representative)
Definition
VignetArray.h:47
SourceXtractor::VignetArray::VignetArray
VignetArray(const std::vector< std::reference_wrapper< const Vignet > > &vignets)
Definition
VignetArray.h:31
SourceXtractor::VignetArray::getVignets
const Euclid::NdArray::NdArray< DetectionImage::PixelType > & getVignets() const
Definition
VignetArray.h:42
std::unique_ptr::get
T get(T... args)
Euclid::make_unique
std::unique_ptr< T > make_unique(Args &&... args)
SourceXtractor
Definition
Aperture.h:30
std::reference_wrapper
std::vector::size
T size(T... args)
std::unique_ptr
std::vector
Generated by
1.11.0