【发布时间】:2018-05-25 03:53:38
【问题描述】:
注意:这个问题最初是几天前在OpenCV forum 提出的。
我正在构建一个广泛使用二维 dft 离散傅里叶变换的图像处理程序。我正在尝试加快速度以便实时运行。
在该应用程序中,我仅使用由矩形 ROI 指定的 dft 输出的一部分。我当前的实现遵循以下步骤:
- 计算输入图像f的dft(通常大小为512x512)并得到整个dft结果F
- 将 F 裁剪到预先指定的感兴趣区域(ROI,通常大小为 32x32,任意位置),R
这个过程基本上很好,但是因为我只需要F的部分信息,所以涉及到无用的计算。我正在寻找一种仅通过计算 dft 的必要部分来加速此计算的方法。
我发现带有英特尔 IPP 的 OpenCV 可以使用英特尔 IPP 函数计算 dft,这比简单的 OpenCV 实现要快一个数量级。我想知道我是否可以仅通过计算预先指定的 dft 频域来加速这种计算。
由于我是 OpenCV 新手,所以我在这里迷路了,所以我希望你能提供一种方法来做到这一点。
请注意,我并不是要对图像的 ROI 进行 dft,即 dft(ROI(f)),但我想计算 ROI(dft( f)).
提前致谢。
【问题讨论】:
-
你有源代码可以提供吗?对于Code Review,这可能是一个很好的问题,因为您的代码可以正常工作,但想知道如何提高性能。
-
感谢您对 Code Review 的指点。不幸的是,我无法提供比问题更多的代码片段。我会考虑从 SO 迁移到 Code Review。
标签: opencv fft dft acceleration intel-ipp