Transformación inversa de Fourier en OpenCV.
Soy nuevo en OpenCV y algoritmos de procesamiento de imágenes. Necesito hacer una transformación de Fourier discreta inversa en OpenCV en C ++, pero no sé cómo. Busqué por internet y no encontré respuesta. Estoy haciendo la transformación de Fourier en mi programa con este código de esta página:http://opencv.itseez.com/doc/tutorials/core/discrete_fourier_transform/discrete_fourier_transform.html. He intentado hacer inverso a ese código, pero no sé dónde estoy haciendo el mal. Mi código está aquí (creo que todo el código es incorrecto):
<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>