Odwrotna transformacja Fouriera w OpenCV

Jestem nowy w algorytmach OpenCV i przetwarzania obrazu. Muszę wykonać odwrotną dyskretną transformację Fouriera w OpenCV w C ++, ale nie wiem jak. Szukałem w Internecie i nie znalazłem odpowiedzi. Robię transformację Fouriera w moim programie z tym kodem z tej strony:http://opencv.itseez.com/doc/tutorials/core/discrete_fourier_transform/discrete_fourier_transform.html. Próbowałem zrobić odwrotność do tego kodu, ale nie wiem, gdzie się mylę. Mój kod jest tutaj (myślę, że cały kod jest błędny):

<code>void doFourierInverse(const Mat &src, Mat &dst) {
  normalize(src, dst, 0, -1, CV_MINMAX); 

  int cx = dst.cols/2;
  int cy = dst.rows/2;

  Mat q0(dst, Rect(0, 0, cx, cy));   
  Mat q1(dst, Rect(cx, 0, cx, cy));  
  Mat q2(dst, Rect(0, cy, cx, cy));  
  Mat q3(dst, Rect(cx, cy, cx, cy)); 

  Mat tmp;         
  q0.copyTo(tmp);
  q3.copyTo(q0);
  tmp.copyTo(q3);

  q1.copyTo(tmp);      
  q2.copyTo(q1);
  tmp.copyTo(q2);

  dst = dst(Rect(0, 0, dst.cols & -2, dst.rows & -2));

  exp(dst, dst);
  dst -= Scalar::all(1);  

  Mat planes[2];

  polarToCart(dst, Mat::zeros(dst.rows, dst.cols, dst.type()), planes[0], planes[1]);

  merge(planes, 2, dst);    

  idft(dst, dst, DFT_INVERSE | DFT_SCALE); 

  split(dst, planes);   

  dst = planes[0];
}
</code>

questionAnswers(1)

yourAnswerToTheQuestion