SourceXtractorPlusPlus
0.21
SourceXtractor++, the next generation SExtractor
Loading...
Searching...
No Matches
SEFramework
SEFramework
Image
MirrorImage.h
Go to the documentation of this file.
1
17
/*
18
* @file SEFramework/Image/ReflectImage.h
19
* @date 11/09/18
20
* @author Alejandro Alvarez Ayllon
21
*/
22
23
#ifndef _SEFRAMEWORK_IMAGE_MIRRORIMAGE_H
24
#define _SEFRAMEWORK_IMAGE_MIRRORIMAGE_H
25
26
#include "
SEFramework/Image/Image.h
"
27
#include "
SEFramework/Image/ImageAccessor.h
"
28
#include "
SEFramework/Image/ImageChunk.h
"
29
30
namespace
SourceXtractor
{
31
36
template
<
typename
T>
37
class
MirrorImage
:
public
Image
<T> {
38
protected
:
39
explicit
MirrorImage
(
std::shared_ptr
<
const
Image<T>
>
img
) :
m_img
{
img
} {
40
}
41
42
public
:
43
template
<
typename
...
Args
>
44
static
std::shared_ptr<MirrorImage<T>
>
create
(
Args
&&...
args
) {
45
return
std::shared_ptr<MirrorImage<T>
>(
new
MirrorImage
{
std::forward<Args>
(
args
)...});
46
}
47
48
std::string
getRepr
()
const override
{
49
return
"MirrorImage("
+
m_img
->getRepr() +
")"
;
50
}
51
52
int
getWidth
()
const override
{
53
return
m_img
->getWidth();
54
}
55
56
int
getHeight
()
const override
{
57
return
m_img
->getHeight();
58
}
59
60
std::shared_ptr<ImageChunk<T>
>
getChunk
(
int
x
,
int
y
,
int
width,
int
height)
const override
{
61
ImageAccessor<T>
accessor
(
m_img
,
ImageAccessor<T>::BOTTOM_RIGHT
);
62
auto
chunk
=
UniversalImageChunk<T>::create
(width, height);
63
auto
img_w
=
accessor
.getWidth();
64
auto
img_h
=
accessor
.getHeight();
65
for
(
int
iy
= 0;
iy
< height; ++
iy
) {
66
for
(
int
ix
= 0;
ix
< width; ++
ix
) {
67
chunk
->at(
ix
,
iy
) =
accessor
.getValue(
img_w
- (
x
+
ix
) - 1,
img_h
- (
y
+
iy
) - 1);
68
}
69
}
70
return
chunk
;
71
}
72
73
private
:
74
std::shared_ptr<const Image<T>
>
m_img
;
75
};
76
77
}
// end SourceXtractor
78
79
#endif
// _SEFRAMEWORK_IMAGE_MIRRORIMAGE_H
ImageAccessor.h
ImageChunk.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
std::string
SourceXtractor::ImageAccessor
Definition
ImageAccessor.h:41
SourceXtractor::Image
Interface representing an image.
Definition
Image.h:44
SourceXtractor::MirrorImage
Mirrors an image in both X and Y axes.
Definition
MirrorImage.h:37
SourceXtractor::MirrorImage::getHeight
int getHeight() const override
Returns the height of the image in pixels.
Definition
MirrorImage.h:56
SourceXtractor::MirrorImage::getChunk
std::shared_ptr< ImageChunk< T > > getChunk(int x, int y, int width, int height) const override
Definition
MirrorImage.h:60
SourceXtractor::MirrorImage::MirrorImage
MirrorImage(std::shared_ptr< const Image< T > > img)
Definition
MirrorImage.h:39
SourceXtractor::MirrorImage::getWidth
int getWidth() const override
Returns the width of the image in pixels.
Definition
MirrorImage.h:52
SourceXtractor::MirrorImage::create
static std::shared_ptr< MirrorImage< T > > create(Args &&... args)
Definition
MirrorImage.h:44
SourceXtractor::MirrorImage::getRepr
std::string getRepr() const override
Get a string identifying this image in a human readable manner.
Definition
MirrorImage.h:48
SourceXtractor::MirrorImage::m_img
std::shared_ptr< const Image< T > > m_img
Definition
MirrorImage.h:74
SourceXtractor::UniversalImageChunk::create
static std::shared_ptr< UniversalImageChunk< T > > create(Args &&... args)
Definition
ImageChunk.h:144
std::function
SourceXtractor
Definition
Aperture.h:30
std::shared_ptr
Generated by
1.10.0