SourceXtractorPlusPlus
1.0.3
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
std::string
SourceXtractor::ImageAccessor
Definition
ImageAccessor.h:41
SourceXtractor::ImageAccessor::getHeight
int getHeight() const override
Returns the height of the image in pixels.
Definition
ImageAccessor.h:123
SourceXtractor::ImageAccessor::BOTTOM_RIGHT
@ BOTTOM_RIGHT
Definition
ImageAccessor.h:51
SourceXtractor::ImageAccessor::getValue
T getValue(int x, int y)
Definition
ImageAccessor.h:99
SourceXtractor::ImageAccessor::getWidth
int getWidth() const override
Returns the width of the image in pixels.
Definition
ImageAccessor.h:119
SourceXtractor::Image
Interface representing an image.
Definition
Image.h:44
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::forward
T forward(T... args)
SourceXtractor
Definition
Aperture.h:30
std::shared_ptr
Generated by
1.15.0