SourceXtractorPlusPlus
0.15
Please provide a description of the project.
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
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
SourceXtractor::ImageAccessor::getWidth
int getWidth() const override
Returns the width of the image in pixels.
Definition:
ImageAccessor.h:120
SourceXtractor::ImageAccessor
Definition:
ImageAccessor.h:41
std::string
STL class.
std::shared_ptr
STL class.
SourceXtractor::ImageAccessor::getHeight
int getHeight() const override
Returns the height of the image in pixels.
Definition:
ImageAccessor.h:124
ImageChunk.h
SourceXtractor::MirrorImage::MirrorImage
MirrorImage(std::shared_ptr< const Image< T >> img)
Definition:
MirrorImage.h:39
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::create
static std::shared_ptr< MirrorImage< T > > create(Args &&... args)
Definition:
MirrorImage.h:44
SourceXtractor::MirrorImage
Mirrors an image in both X and Y axes.
Definition:
MirrorImage.h:37
SourceXtractor::Image
Interface representing an image.
Definition:
Image.h:43
SourceXtractor
Definition:
Aperture.h:30
Image.h
SourceXtractor::ImageAccessor::getValue
T getValue(int x, int y)
Definition:
ImageAccessor.h:100
x
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > x
Definition:
MoffatModelFittingTask.cpp:94
SourceXtractor::UniversalImageChunk::create
static std::shared_ptr< UniversalImageChunk< T > > create(Args &&... args)
Definition:
ImageChunk.h:142
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::getHeight
int getHeight() const override
Returns the height of the image in pixels.
Definition:
MirrorImage.h:56
SourceXtractor::MirrorImage::getWidth
int getWidth() const override
Returns the width of the image in pixels.
Definition:
MirrorImage.h:52
y
std::shared_ptr< DependentParameter< std::shared_ptr< EngineParameter > > > y
Definition:
MoffatModelFittingTask.cpp:94
ImageAccessor.h
SourceXtractor::MirrorImage::m_img
std::shared_ptr< const Image< T > > m_img
Definition:
MirrorImage.h:74
Generated by
1.8.20