]> rtime.felk.cvut.cz Git - hercules2020/kcf.git/blob - src/fft.h
c8ce998ad7d333f3de2490a183144c093bfe9740
[hercules2020/kcf.git] / src / fft.h
1
2 #ifndef FFT_H
3 #define FFT_H
4
5 #include <opencv2/opencv.hpp>
6 #include <vector>
7
8 #ifdef CUFFT
9     #include "complexmat.cuh"
10 #else
11     #include "complexmat.hpp"
12 #endif
13
14 class Fft
15 {
16 public:
17     virtual void init(unsigned width, unsigned height,unsigned num_of_feats, unsigned num_of_scales, bool big_batch_mode) = 0;
18     virtual void set_window(const cv::Mat &window) = 0;
19     virtual ComplexMat forward(const cv::Mat &input) = 0;
20     virtual ComplexMat forward_raw(float *input, bool all_scales) = 0;
21     virtual ComplexMat forward_window(const std::vector<cv::Mat> &input) = 0;
22     virtual cv::Mat inverse(const ComplexMat &input) = 0;
23     virtual float* inverse_raw(const ComplexMat &input) = 0;
24     virtual ~Fft() = 0;
25 };
26
27 #endif // FFT_H