首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何通过在频域指定感兴趣区域来加速DFT

如何通过在频域指定感兴趣区域来加速DFT
EN

Stack Overflow用户
提问于 2018-05-25 03:53:38
回答 1查看 342关注 0票数 1

注意:这个问题最初是几天前在http://answers.opencv.org/question/191988/speed-up-dft-by-specifying-roi-in-frequency-domain/上提出的。

我正在建立一个图像处理程序,它广泛使用二维dft,离散傅里叶变换.我正试着加快速度以便实时跑。

在该应用程序中,我只使用由矩形ROI指定的dft输出的一部分。我目前的实现遵循以下步骤:

  1. 计算输入图像f的dft (通常大小为512x512),并得到整个dft结果F。
  2. 将F裁剪成预先指定的感兴趣区域(ROI,通常大小为32x32,位置为任意),R

这个过程基本上运行良好,但涉及无用的计算,因为我只需要F的部分信息,我正在寻找一种方法来加速这一计算,只通过计算必要的一部分dft。

我发现带有Intel的OpenCV使用Intel函数计算dft,这比简单的OpenCV实现快一个数量级。我想知道我是否还能通过计算dft的预先指定的频域来加速这个计算。

由于我刚开始接触OpenCV,我在这里迷失了方向,所以我希望你能提供一种方法来做到这一点。

请注意,我并不打算对图像的ROI进行dft,即dft(ROI(f)),但是我想计算ROI(dft(f))。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2018-05-25 04:18:24

只是一个部分的想法。

DFT是可分离的。它总是通过首先将FFT算法应用于图像的行,然后应用到结果的列(或者反过来,顺序并不重要)来计算。

如果您只想要输出的ROI,那么在第二步中,您只需要处理ROI中的列。

我不认为你会找到一种方法,只计算每个一维行/列的频率子集。这可能需要侵入您自己的FFT,这可能比使用IPP或FFTW中的FFT要昂贵得多。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50521283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档