]> rtime.felk.cvut.cz Git - hercules2020/kcf.git/blob - src/fft.h
Work done so far on CUDA streams
[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 #include "scale_vars.hpp"
8
9 #ifdef CUFFT
10     #include "complexmat.cuh"
11 #else
12     #include "complexmat.hpp"
13 #endif
14
15 struct Scale_vars;
16
17 class Fft
18 {
19 public:
20     virtual void init(unsigned width, unsigned height,unsigned num_of_feats, unsigned num_of_scales, bool big_batch_mode) = 0;
21     virtual void set_window(const cv::Mat & window) = 0;
22     virtual void forward(const cv::Mat & real_input, ComplexMat & complex_result, float *real_input_arr, cudaStream_t  stream) = 0;
23     virtual void forward_window(std::vector<cv::Mat> patch_feats, ComplexMat & complex_result, cv::Mat & fw_all, float *real_input_arr, cudaStream_t stream) = 0;
24     virtual void inverse(ComplexMat &  complex_input, cv::Mat & real_result, float *real_result_arr, cudaStream_t stream) = 0;
25     virtual ~Fft() = 0;
26 };
27
28 #endif // FFT_H