Logo
ApraPipes 1.0
Loading...
Searching...
No Matches
AffineTransform.h
1#pragma once
2
3#include "Module.h"
4#ifdef APRA_CUDA_ENABLED
5#include "CudaCommon.h"
6#endif
7
9class DeatilCUDA;
10class DetailDMA;
11class DetailHost;
12class DetailGPU;
13
15{
16public:
29
35
36 AffineTransformProps(TransformType _type, double _angle, int _x = 0, int _y = 0, double _scale = 1.0)
37 {
38 if (_type != TransformType::USING_OPENCV)
39 {
40 throw AIPException(AIP_FATAL, "This constructor only supports Opencv");
41 }
42 angle = _angle;
43 x = _x;
44 y = _y;
45 scale = _scale;
46 type = _type;
47 }
48#ifdef APRA_CUDA_ENABLED
49 AffineTransformProps(TransformType _type, Interpolation _interpolation, cudastream_sp &_stream, double _angle, int _x=0, int _y=0, double _scale = 1.0)
50 {
51 if (_type != TransformType::USING_NPPI)
52 {
53 throw AIPException(AIP_FATAL, "This constructor only supports using NPPI");
54 }
55 stream = _stream;
56 angle = _angle;
57 x = _x;
58 y = _y;
59 scale = _scale;
60 interpolation = _interpolation;
61 type = _type;
62 }
63#endif
64
65 int x = 0;
66 int y = 0;
67 double scale = 1.0;
68 double angle;
69#ifdef APRA_CUDA_ENABLED
70 cudastream_sp stream;
71#endif
74
76 {
77 return ModuleProps::getSerializeSize() + sizeof(int) * 2 + sizeof(double) + sizeof(float) + sizeof(interpolation) + sizeof(type);
78 }
79
80private:
82
83 template <class Archive>
84 void serialize(Archive &ar, const unsigned int version)
85 {
86 ar &boost::serialization::base_object<ModuleProps>(*this);
87 ar &angle &x &y &scale ;
88 ar& interpolation;
89 ar& type;
90 }
91};
92
93class AffineTransform : public Module
94{
95
96public:
98 virtual ~AffineTransform();
99 bool init();
100 bool term();
101 void setProps(AffineTransformProps &props);
103
104protected:
105 bool process(frame_container &frames);
106 bool processSOS(frame_sp &frame);
107 bool validateInputPins();
108 bool validateOutputPins();
109 void addInputPin(framemetadata_sp &metadata, string &pinId); // throws exception if validation fails
110 bool shouldTriggerSOS();
111 bool processEOS(string &pinId);
113 bool handlePropsChange(frame_sp& frame);
114 boost::shared_ptr<DetailMemoryAbstract> mDetail;
115};
Definition AffineTransform.h:15
int y
Definition AffineTransform.h:66
int x
Definition AffineTransform.h:65
AffineTransformProps(TransformType _type, double _angle, int _x=0, int _y=0, double _scale=1.0)
Definition AffineTransform.h:36
TransformType
Definition AffineTransform.h:31
@ USING_OPENCV
Definition AffineTransform.h:32
@ USING_NPPI
Definition AffineTransform.h:33
Interpolation
Definition AffineTransform.h:17
@ LANCZOS
Definition AffineTransform.h:26
@ CUBIC2P_BSPLINE
Definition AffineTransform.h:22
@ LINEAR
Definition AffineTransform.h:19
@ LANCZOS3_ADVANCED
Definition AffineTransform.h:27
@ NN
Definition AffineTransform.h:18
@ UNDEFINED
Definition AffineTransform.h:21
@ CUBIC
Definition AffineTransform.h:20
@ CUBIC2P_B05C03
Definition AffineTransform.h:24
@ CUBIC2P_CATMULLROM
Definition AffineTransform.h:23
@ SUPER
Definition AffineTransform.h:25
TransformType type
Definition AffineTransform.h:73
void serialize(Archive &ar, const unsigned int version)
Definition AffineTransform.h:84
double scale
Definition AffineTransform.h:67
friend class boost::serialization::access
Definition AffineTransform.h:81
double angle
Definition AffineTransform.h:68
Interpolation interpolation
Definition AffineTransform.h:72
size_t getSerializeSize()
Definition AffineTransform.h:75
Definition AffineTransform.h:94
void addInputPin(framemetadata_sp &metadata, string &pinId)
Definition AffineTransform.cpp:537
virtual ~AffineTransform()
Definition AffineTransform.cpp:443
AffineTransform(AffineTransformProps props)
Definition AffineTransform.cpp:441
AffineTransformProps getProps()
Definition AffineTransform.cpp:623
bool init()
Definition AffineTransform.cpp:572
bool validateOutputPins()
Definition AffineTransform.cpp:504
bool processEOS(string &pinId)
Definition AffineTransform.cpp:612
bool process(frame_container &frames)
Definition AffineTransform.cpp:587
bool term()
Definition AffineTransform.cpp:581
bool shouldTriggerSOS()
Definition AffineTransform.cpp:607
boost::shared_ptr< DetailMemoryAbstract > mDetail
Definition AffineTransform.h:114
bool handlePropsChange(frame_sp &frame)
Definition AffineTransform.cpp:629
AffineTransformProps mProp
Definition AffineTransform.h:112
bool validateInputPins()
Definition AffineTransform.cpp:445
void setProps(AffineTransformProps &props)
Definition AffineTransform.cpp:618
bool processSOS(frame_sp &frame)
Definition AffineTransform.cpp:600
Definition AffineTransform.cpp:369
Definition AffineTransform.cpp:348
Definition AffineTransform.cpp:158
Definition AffineTransform.cpp:390
Definition AffineTransform.cpp:24
Definition Module.h:33
virtual size_t getSerializeSize()
Definition Module.h:101
Definition Module.h:151