问题标签 [fftw]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - C++ 中是否有 Opencv 2.3 Mat 指针
我是 opencv 的新手,在 C++ 中使用 2.3 版。我的方法是获取一个指向 cv::Mat_ 值的 float** 指针,我还可以在其中更改值或通过 float[][] 访问。我需要它来使用 fftw3 和其他东西,我通常需要这些指针。opencv 的文档非常好,但我只能找到 uchar* 指针“数据”。用这个指针读取图像不是问题,但我也想在 cv::Mats 中写入浮点数或双精度数。
只是为了帮助:我的最终功能应该是这样的:
那么有人有这个问题的小代码片段吗?
fortran - poisson eq. with spectral method
I wrote poisson eq. solver with spectral method. However, the obtained result does not coincide with the result of difference method with periodic boundary condition. I think I am mistaken in the use of FFTW. Could you tell me which part of the following code contains errors? Thank you.
opencv - 访问 OpenCV 1.0 图像像素值并在 FFTW 中使用它们
我正在使用基于 OpenCV 1.0 的校准工具箱,我正在对其进行少量添加。我的补充需要使用 FFTW 库(OpenCV 有 DFT 函数,但我不喜欢它们)。
我一直在尝试访问图像的像素值并将这些像素值存储到 FFTW_complex 类型变量中。我尝试了很多不同的建议(包括 openCV 文档),但我无法正确执行此操作。
下面的代码在构建或调试期间不会与变量类型产生任何不一致;但是,获得并存储在“testarray”中的像素值是值 [13、240、173、186] 的重复。有谁知道如何访问像素值并将它们存储到符合 FFTW 的矩阵/容器中?
我发现了问题。我一直在使用错误的方法来访问它。
这是我使用的:
fftw - Wither 给定的 FFTW 库是以单精度还是双精度编译的?
有没有办法检查 - 枯萎的 FFTW 是以单精度还是双精度编译的?
linux - 为什么 Windows 上的 FFTW 比 Linux 上的快?
我使用 fftw 库 ( fftw3.a
, fftw3.lib
) 在 Linux 和 Windows 中编写了两个相同的程序,并计算了fftwf_execute(m_wfpFFTplan)
语句的持续时间 (16-fft)。
对于 10000 次运行:
- 在 Linux 上:平均时间为 0.9
- 在 Windows 上:平均时间为 0.12
我很困惑为什么这在 Windows 上比在 Linux 上快九倍。
处理器:Intel(R) Core(TM) i7 CPU 870 @ 2.93GHz
每个操作系统(Windows XP 32 位和 Linux OpenSUSE 11.4 32 位)都安装在同一台机器上。
我从 Internet 下载了 fftw.lib(适用于 Windows),但不知道该配置。一旦我使用此配置构建 FFTW:
在 Linux 中,它生成的库比默认配置(0.4 毫秒)快四倍。
c++ - 在 Linux 和 Eclipse IDE 中使用 FFTW 库的问题
因此,我正在使用前段时间编写的一些旧代码。我最初打算将它移植到 Windows,取得了一些成功,但很快遇到了其他问题,并决定回到 *nix 环境。原始代码在第一次尝试中编译并运行得很好。
我正在运行 Ubuntu 11.10 并选择 Eclipse 作为我的 IDE。编译和运行原始代码时,一切都很好。现在我已经安装了 FFTW 库 ([fftw.org][1]) 并且似乎无法构建任何使用该库的东西。
我在终端中使用 aptitude 安装了库:
该库肯定存在:
我已经将“fftw3”添加到我的项目属性->C++ 链接器->Eclipse 中的库列表中。
头文件找到就好了。
当我去编译时,库中定义的每一个数据类型都没有被定义,所以基本上编译器不知道该怎么做。
我有点懵了……
这是错误之一(它们都是相同的):行:
错误:
我不确定还能尝试什么。非常感谢您的帮助和专业知识。提前致谢。
解决了!这是解决方案
对于其他使用OLD CODE且睡眠不足、在 Google 和 StackOverflow 上搜索类似问题的解决方案的人,请从我的愚蠢错误中学习,而不是自己犯错误。
这里的关键词是old code。我的代码是为 FFTW 2 编写的,但我使用的是库的版本 3,它具有完全不同的界面。我必须更新所有使用该库的代码,然后一切正常。
嗬!多么愚蠢。我希望有一天谷歌领域的人会发现这很有用。
谢谢你,Dietmar Kühl,帮助我意识到出了什么问题。感谢您花时间安装库并四处寻找;你真好。
c++ - 解决 MATLAB fft2() 与其 fftw_plan_dft_2d() C++ 实现之间的数值差异
我正在尝试使用 OpenCV 和 FFTW3.3 库在 C++ 中实现 MATLAB fft2() 和 ifft2() 函数。我已经能够成功移植代码,它可以正确执行正向和逆变换。但是,MATLAB R2009a fft2() 函数生成的 dft 矩阵的复数值与其对应的 FFTW 有很大不同。我需要解决这个问题以获得我的应用程序的最佳性能。我在下面提供我的 C++ 实现和示例输入/输出:
例如,使用以下代码调用上述 fft2() 函数:
对于 x = [ 1+1i 1+1i; 1+1i 1+1i] fft2(x) 提供
[4.0000 + 4.0000i 0; 0 0 ] 其中 fftw 实现提供,
[-6.27744e+066-6.27744e+066i 6.27744e+066-6.27744e+066i ; -6.27744e+066-6.27744e+066i 6.27744e+066-6.27744e+066i]
我需要了解这两个矩阵之间的关系(如果有的话)。
期待您的建议。
提前致谢。
windows - 无法在 Windows 64 位上使用 Visual C++ Express 链接到 fftw 库
我正在尝试使用 Visual c++ express 链接到 fftw 库,但是当我尝试编译时出现链接器错误。我生成了 lib 文件,正如网站 (http://fftw.org/install/windows.html) 通过使用 lib.exe 程序创建 .lib“导入库”来解释的。
我将 .lib 文件添加到“Program Files (x86)\Microsoft Visual Studio 9.0\VC\lib”,并将 fftw3.h 添加到“Program Files (x86)\Microsoft Visual Studio 9.0\VC\include”。然后我将 dll 文件放在“Windows/system32”文件夹中。我通过将库(libfftw3f-3.lib、libfftw3-3.lib、libfftw3l-3.lib)添加到链接器/输入首选项的其他依赖项来链接这些库。当我尝试编译时,出现以下错误:
我搜索了堆栈溢出,但大多数答案都解释说需要将库添加到要找到的其他依赖项中。当我将 /verbose:lib 放在命令行选项上时,我得到以下信息:
它似乎找到了库,但不知道在其中找到函数名称的人。我从一个也使用这个库的网站获得了代码,有趣的是函数名称没有出现在“fftw3.h”中,但我认为这不是问题的原因。
任何帮助将不胜感激,因为我不知道现在该转向哪里。
谢谢。
macos - fftw3 为 openmp 使用配置问题
我正在尝试使用 mac os Lion 下的 openmp 选项编译 fftw3。如http://www.fftw.org/release-notes.html中所公开,我使用以下命令行 ./configure --enable-openmp
配置停止在以下行:检查 C 编译器的 OpenMP 标志...未知配置:错误:不知道如何启用 OpenMP
我知道openmp是用xcode给出的,但我不知道如何给它配置选项,有人可以帮助我吗?我已经成功地在其他程序中使用了 openmp。
我希望这是足够的信息来帮助我。
谢谢,
注意:我有 Xcode 4.2、gcc 4.2.1。
在 config.log 的“输出变量”部分,我发现:
失败似乎是(在 config.log 中):
配置:18427:gcc -std=gnu99 -o conftest conftest.c -lm >&5
架构 x86_64 的未定义符号:
“_omp_set_num_threads”,从 ccfUItzL.o 中的 _main 引用
ld:未找到架构 x86_64 的
符号 collect2:ld返回 1 退出状态
配置:18427:$?= 1
配置:失败的程序是:/.../
c - 使用 FFTW 的相位相关
现在对于相位相关(两个图像),我使用一维变换。如何使用二维变换(会更快?),如何使用智慧和多线程支持?如果你给出代码示例会更好。