Logo
ApraPipes 1.0
Loading...
Searching...
No Matches
CalcHistogramCV.h
1#pragma once
2
3#include "Module.h"
4#include <boost/serialization/vector.hpp>
5
6/*
7ROI - optional
8Mask - optional
9numBins - number of bins
10https://docs.opencv.org/2.4/modules/imgproc/doc/histograms.html?highlight=calchist#calchist
11
12depth has to be either CV_8U or CV_32F
13*/
14
16{
17public:
19 {
20 bins = 8;
21 }
22
24 {
25 bins = _bins;
26 }
27
29 {
30 return ModuleProps::getSerializeSize() + sizeof(bins) + sizeof(roi) + sizeof(maskImgPath) + maskImgPath.length();
31 }
32
33 // All the properties can be updated during run time using setProps
34 int bins;
35 vector<int> roi;
36 string maskImgPath;
37
38private:
40
41 template<class Archive>
42 void serialize(Archive &ar, const unsigned int version)
43 {
44 ar & boost::serialization::base_object<ModuleProps>(*this);
45
46 ar & bins;
47 ar & roi;
48 ar & maskImgPath;
49 }
50};
51
52class CalcHistogramCV : public Module {
53public:
54
56 virtual ~CalcHistogramCV() {}
57
58 virtual bool init();
59 virtual bool term();
60
61 void setProps(CalcHistogramCVProps& props);
63
64protected:
65 bool process(frame_container& frames);
66 bool processSOS(frame_sp& frame);
67 bool validateInputPins();
68 bool validateOutputPins();
70 void addInputPin(framemetadata_sp& metadata, string& pinId); // throws exception if validation fails
71 bool shouldTriggerSOS();
72
73 bool handlePropsChange(frame_sp& frame);
74
75private:
76 class Detail;
77 boost::shared_ptr<Detail> mDetail;
78};
79
80
81
Definition CalcHistogramCV.h:16
int bins
Definition CalcHistogramCV.h:34
CalcHistogramCVProps(int _bins)
Definition CalcHistogramCV.h:23
CalcHistogramCVProps()
Definition CalcHistogramCV.h:18
size_t getSerializeSize()
Definition CalcHistogramCV.h:28
friend class boost::serialization::access
Definition CalcHistogramCV.h:39
vector< int > roi
Definition CalcHistogramCV.h:35
void serialize(Archive &ar, const unsigned int version)
Definition CalcHistogramCV.h:42
string maskImgPath
Definition CalcHistogramCV.h:36
Definition CalcHistogramCV.h:52
virtual bool init()
Definition CalcHistogramCV.cpp:266
bool process(frame_container &frames)
Definition CalcHistogramCV.cpp:286
bool processSOS(frame_sp &frame)
Definition CalcHistogramCV.cpp:307
void setProps(CalcHistogramCVProps &props)
Definition CalcHistogramCV.cpp:327
CalcHistogramCVProps getProps()
Definition CalcHistogramCV.cpp:319
virtual ~CalcHistogramCV()
Definition CalcHistogramCV.h:56
bool shouldTriggerSOS()
Definition CalcHistogramCV.cpp:314
boost::shared_ptr< Detail > mDetail
Definition CalcHistogramCV.h:77
bool validateOutputPins()
Definition CalcHistogramCV.cpp:227
CalcHistogramCV(CalcHistogramCVProps props)
Definition CalcHistogramCV.cpp:203
bool validateInputPins()
Definition CalcHistogramCV.cpp:208
virtual bool term()
Definition CalcHistogramCV.cpp:281
bool handlePropsChange(frame_sp &frame)
Definition CalcHistogramCV.cpp:332
bool validateInputOutputPins()
Definition CalcHistogramCV.cpp:249
void addInputPin(framemetadata_sp &metadata, string &pinId)
Definition CalcHistogramCV.cpp:260
Definition FacialLandmarksCV.cpp:17
Definition Module.h:33
virtual size_t getSerializeSize()
Definition Module.h:101
Definition Module.h:151