我想使用 GPU 加速算法来执行快速且节省内存的 dft。但是,当我执行 时gpu::dft
,目标矩阵会按照文档中的说明进行缩放。如何通过将宽度缩放到 来避免这个问题dft_size.width / 2 + 1
?另外,为什么会这样缩放?我的 DFT 代码是这样的:
cv::gpu::GpuMat d_in, d_out;
d_in = in;
d_out.create(d_in.size(), CV_32FC2 );
cv::gpu::dft( d_in, d_out, d_in.Size );
其中in
是一个CV_32FC1
矩阵,即 512x512。
最好的解决方案是具有 sized_in.size
和 type的目标矩阵CV_32FC2
。