Evo 7.12.0-TM26061101
Evo LPR Engine
Loading...
Searching...
No Matches
CamCalib.hpp
Go to the documentation of this file.
1#ifndef EVO_CAM_CALIB_HPP_
2#define EVO_CAM_CALIB_HPP_
3
4#include "Picture.hpp"
5
6#include <mutex>
7#include <memory>
8#include <string>
9
10
11#if defined(_WIN64)
12# ifdef EVOCC_EXPORTS
13# define EVOCC_DECLSPEC __declspec(dllexport)
14# else
15# define EVOCC_DECLSPEC __declspec(dllimport)
16# endif
17#else //__linux__
18# define EVOCC_DECLSPEC
19#endif
20
21
22struct SwsContext;
23namespace cv { class FileStorage; }
24
25
26namespace Evo
27{
28
32namespace CC
33{
34
35struct CameraBody;
36struct LensModule;
37
41class Model
42{
43protected:
44 const std::string calibName_;
45 const CameraBody *camBody_;
46 const LensModule *lensModule_;
47 ::SwsContext *swsCtx_;
48
49 mutable std::mutex mtx_;
50
51protected:
52 Model(const std::string &calibName);
53 virtual ~Model(void);
54
55 std::string GetCalibFile(void) const;
56 EvoRC ParseCalibFile(cv::FileStorage &fs, CameraBody &camBody, LensModule &lensModule);
57
58public:
64 virtual const char* GetCalibName(void) const;
65
75 virtual const char* GetCamProd(void) const;
76
82 virtual const char* GetLensProd(void) const;
83
89 virtual EvoSize GetMaxResol(void) const;
90
91 EVO_RMV_SPECIAL_METHODS(Model)
92};
93
97class Fisheye : public Model
98{
99public:
100 typedef std::shared_ptr<Fisheye> Ptr;
101
102protected:
103 Fisheye(const std::string &calibName);
104 ~Fisheye(void);
105
106public:
112 virtual double GetFocalLen(void) const = 0;
113
123 virtual EvoRC ChangeFocalLen(double delta) = 0;
124
130 virtual EvoSize GetOutputSize(void) const = 0;
131
140 virtual EvoRC SetOutputSize(const EvoSize &size) = 0;
141
149 virtual Picture::Ptr Rectify(const char *imgPath) = 0;
150
158 virtual Picture::Ptr Rectify(const EvoImage &img) = 0;
159
168 virtual Picture::Ptr Rectify(const void *encImg, size_t len) = 0;
169
178 EVOCC_DECLSPEC static Ptr Create(const char *calibName);
179
180 typedef Ptr (*FP_Create)(const char*);
181
182 EVO_RMV_SPECIAL_METHODS(Fisheye)
183};
184
185} // CC namespace
186
187} // Evo namespace
188
189#endif // EVO_CAM_CALIB_HPP_
EvoRC
Return Codes.
Definition Basic.h:59
C++ header file for pictures.
virtual Picture::Ptr Rectify(const EvoImage &img)=0
static EVOCC_DECLSPEC Ptr Create(const char *calibName)
virtual double GetFocalLen(void) const =0
virtual Picture::Ptr Rectify(const char *imgPath)=0
virtual EvoRC SetOutputSize(const EvoSize &size)=0
virtual EvoSize GetOutputSize(void) const =0
virtual EvoRC ChangeFocalLen(double delta)=0
virtual Picture::Ptr Rectify(const void *encImg, size_t len)=0
virtual const char * GetCamProd(void) const
virtual EvoSize GetMaxResol(void) const
virtual const char * GetCalibName(void) const
virtual const char * GetLensProd(void) const
Camera Calibration namespace.
Definition CamCalib.hpp:33
Evo Engine's topmost namespace
Definition CamCalib.hpp:27
Image Descriptor.
Definition Basic.h:510
Size Descriptor.
Definition Basic.h:436