return result;
}
-cv::Mat cuFFT::inverse(const ComplexMat &inputf)
+cv::Mat cuFFT::inverse(const ComplexMat &input)
{
- int n_channels = inputf.n_channels;
- cufftComplex *in = reinterpret_cast<cufftComplex*>(inputf.get_p_data());
+ int n_channels = input.n_channels;
+ cufftComplex *in = reinterpret_cast<cufftComplex*>(input.get_p_data());
if(n_channels == 1){
cv::Mat real_result(m_height, m_width, CV_32FC1, data_i_1ch);
float* cuFFT::inverse_raw(const ComplexMat &input)
{
- cv::Mat real_result(m_height, m_width, CV_32FC(n_channels), data_i_features_all_scales);
-
+ cufftComplex *in = reinterpret_cast<cufftComplex*>(input.get_p_data());
+
CufftErrorCheck(cufftExecC2R(plan_i_features_all_scales, in, reinterpret_cast<cufftReal*>(data_i_features_all_scales_d)));
return data_i_features_all_scales;
void set_window(const cv::Mat &window) override;
ComplexMat forward(const cv::Mat &input) override;
ComplexMat forward_window(const std::vector<cv::Mat> &input) override;
- cv::Mat inverse(const ComplexMat &inputf) override;
+ cv::Mat inverse(const ComplexMat &input) override;
float* inverse_raw(const ComplexMat &input) override;
~cuFFT() override;
private:
return result;
}
-cv::Mat Fftw::inverse(const ComplexMat &inputf)
+cv::Mat Fftw::inverse(const ComplexMat &input)
{
- int n_channels = inputf.n_channels;
+ int n_channels = input.n_channels;
cv::Mat real_result(m_height, m_width, CV_32FC(n_channels));
- fftwf_complex *in = reinterpret_cast<fftwf_complex*>(inputf.get_p_data());
+ fftwf_complex *in = reinterpret_cast<fftwf_complex*>(input.get_p_data());
float *out = reinterpret_cast<float*>(real_result.data);
if(n_channels == 1)
return result;
}
-cv::Mat FftOpencv::inverse(const ComplexMat &inputf)
+cv::Mat FftOpencv::inverse(const ComplexMat &input)
{
cv::Mat real_result;
- if (inputf.n_channels == 1) {
- cv::dft(inputf.to_cv_mat(), real_result, cv::DFT_INVERSE | cv::DFT_REAL_OUTPUT | cv::DFT_SCALE);
+ if (input.n_channels == 1) {
+ cv::dft(input.to_cv_mat(), real_result, cv::DFT_INVERSE | cv::DFT_REAL_OUTPUT | cv::DFT_SCALE);
} else {
- std::vector<cv::Mat> mat_channels = inputf.to_cv_mat_vector();
- std::vector<cv::Mat> ifft_mats(inputf.n_channels);
- for (int i = 0; i < inputf.n_channels; ++i) {
+ std::vector<cv::Mat> mat_channels = input.to_cv_mat_vector();
+ std::vector<cv::Mat> ifft_mats(input.n_channels);
+ for (int i = 0; i < input.n_channels; ++i) {
cv::dft(mat_channels[i], ifft_mats[i], cv::DFT_INVERSE | cv::DFT_REAL_OUTPUT | cv::DFT_SCALE);
}
cv::merge(ifft_mats, real_result);
void set_window(const cv::Mat &window) override;
ComplexMat forward(const cv::Mat &input) override;
ComplexMat forward_window(const std::vector<cv::Mat> &input) override;
- cv::Mat inverse(const ComplexMat &inputf) override;
+ cv::Mat inverse(const ComplexMat &input) override;
float* inverse_raw(const ComplexMat &input) override;
~FftOpencv() override;
private: