问题标签 [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++ - 带有 ITK 和 FFTW 的 VS2008 中的错误 LNK2019(未解析的外部符号)
我正在使用 ITK 执行一个项目来处理医学图像。经过大量工作后,没有进一步的编译错误,但在链接过程中,我得到以下信息:
1>--------生成开始:proyect:prueba_r01,配置:Debug Win32 ------ 1>Linking... 1>Creating library C:\Documents and Settings\GTTS\Mis documentos\Visual Studio 2008\Projects \prueba_r01\Debug\prueba_r01.lib 和对象 C:\Documents and Settings\GTTS\Mis documentos\Visual Studio 2008\Projects\prueba_r01\Debug\prueba_r01.exp
1>prueba_r01.obj : 错误 LNK2019: extern symbol "public: double (* __thiscall prueba_r01::multiply_matrix_2D(double ( )[2],double ( )[2],int,int))[2]" (?multiply_matrix_2D@ prueba_r01@@QAEPAY01NPAY01N0HH@Z) 未解决,在函数“private: void __thiscall prueba_r01::filtro(void)”(?filtro@prueba_r01@@AAEXXZ) 中引用
1>C:\Documents and Settings\GTTS\Mis documentos\Visual Studio 2008\Projects\prueba_r01\Debug\prueba_r01.exe : 致命错误 LNK1120: 1 externos sin resolver
1>prueba_r01 - 2 个错误,0 个警告 =========== 一般:0 个更正,1 个不正确,0 个实现,0 个省略 ==========
方法 multiply_matrix_2D 在私有槽“filtro()”中调用时会产生错误(翻译为过滤器)文件的标题是:
而问题所在的主要部分在.cpp文件中,显示在这里:
将 **double 指针转换为 *fftw_complex 的过程在这里完成,因为我想将频域 (H(w)) 中的滤波器与图像的 fft 变换结果相乘,这就是原因。重要的是要注意 fftw_complex 是 double[2],第一行为实部,第二行为虚部。有问题的方法如下所示:
任何帮助都会非常好!我现在很迷茫……谢谢!格拉西亚斯!安东尼奥
c++ - 在 C++ 中使用 reinterpret_cast
只是一个简单的问题,有这个:
有什么区别:
和
非常感谢提前
安东尼奥
c++ - 时间编译访问违规 (0xC0000005)
我想要做的过程是对图像进行 FFT(存储在“imagen”中),然后将其与过滤器“H”相乘,之后也会进行逆 FFT。代码如下所示:
问题出在此处,在函数“multiply_matrix_2D”内的循环中:
x = 95 和 y = 93 的值是 M = 191 和 N = 96;prueba_r01.exe 中 0x004273ab 处的不受控制的异常:0xC0000005 访问违规读取 0x01274000。
图片 http://img846.imageshack.us/img846/4585/accessviolationproblem.png
很多变量的值都是红色的,并且对于翻译问题:H_cast[][1] 在值框中:“Error30CXX0000:不可能评估表达式”。
我将非常感谢任何形式的帮助!
安东尼奥
c++ - 用于计算 FFT_2D 的 2D 双 * 指针中图像的像素值
我想计算一个图像的 FFT,我读取图像,ITK SmartPointer 被称为“imagen”。我用于计算 FFT (fftw_plan_dft_r2c_2d) 的函数的输入需要一个 2D 双 * 指针作为输入。因此,我这样做:
但是当我尝试访问图像的像素值时,它们没有被定义“图像”的像素类型是双倍的:
并且图像是使用 Qt 通过用户界面从帧中读取的:
谁能帮我这个?我需要将图像的值放在 2D double* 指针中以计算 fft。
干杯并感谢您的帮助!
安东尼奥·戈麦斯·巴克罗
已编辑
我已经解决了我的问题,贴在下面,但现在的问题是将结果转换为二维矩阵,直到执行时间才知道它的第二维,因为图像是在执行期间而不是在编译期间加载的,有什么提示吗? ? 谢谢!
解决方案
opencv - 用 C++ 绘制图像的光谱(fftw,OpenCV)
我正在尝试创建一个程序来绘制给定图像的二维灰度光谱。我正在使用 OpenCV 和 FFTW 库。通过使用来自互联网的提示和代码并对其进行修改,我设法加载图像,计算该图像的 fft 并从 fft 重新创建图像(它是相同的)。我无法做的是绘制傅立叶光谱本身。请你帮助我好吗?这是代码(删除了不太重要的行):
}
问题出在“频谱”部分。我得到的不是频谱,而是一些噪音。我究竟做错了什么?我会很感激你的帮助。
unix - 在没有 root 访问权限的情况下编译 FFTW
我的老板正在休假,我真的很想在 Mac OS X 上从http://www.fftw.org/编译 FFTW 库。问题是,我没有使用 make install 在根目录中安装文件的 root 访问权限。是否有可能仅为我的用户帐户在本地安装它们?.
我读了这个http://www.princeton.edu/~ngrube/notes.html#fftw ..
我的主目录中有一个包含 bin、lib、include 和 share 子文件夹的文件夹。在 include 文件夹中是 fftw3.h 文件,在 lib 文件夹中是 libfftw3.a 文件。是否有可能在我的项目中使用 fftw3.h?当我运行它并想将 libfftw3.a 链接到我的项目时,它说:
找不到 -llibfftw3.a 的库
我正在为 C/C++ 使用 Eclipse CDT
编辑:
我刚刚看到,当我使用 make install 在我的用户目录中的某个本地路径上安装时,我得到了一些行:
我认为他们是问题所在。有人有解决方案吗?
benchmarking - fft 算法的基准测试方法
我目前正在开发一个拥有自己的内部 fft(快速傅里叶变换)库的库,我想用FFTW替换它。现在,其他开发人员有点担心它可能导致的性能问题。速度方面最关键的部分也是处理半复数实数的一维卷积算法。(我正在使用 fftw 的 fftw_plan_r2r_1d)。
此外,事情有点复杂,因为内部 fftw 根据变换的大小使用不同的算法。
我目前的想法是生成一堆不同长度的数据集。然后将它们读入并在进行转换之前以预定方式为每次迭代修改数据集数组。
或者还有什么我应该知道的吗?
python - 如何在 Python ThreadPool 中使用初始化程序
我正在尝试使用 PyFFTW 进行线程卷积,以便同时计算大量 2D 卷积。(不需要单独的进程,因为 GIL 是为 Numpy 操作发布的)。现在这里是这样做的规范模型:http: //code.activestate.com/recipes/577187-python-thread-pool/
(Py)FFTW 之所以如此之快,是因为它重用了计划。这些必须为每个线程单独设置,以避免访问冲突错误,如下所示:
通过这种方式,可以将参数self.inputa
, self.outputa
, self.fft
, self.inputb
, self.outputb
,传递self.ifft
给 Worker 类的 run 方法中的实际卷积器。
这一切都很好,但我们不妨导入 ThreadPool 类:
但是我应该如何在 ThreadPool 中定义初始化程序以获得相同的结果?根据文档 http://docs.python.org/library/multiprocessing.html “每个工作进程在启动时都会调用初始化程序(*initargs)”。您可以在 Python 源代码中轻松检查这一点。
但是,当您设置线程池时,例如使用 2 个线程:
然后你运行它,也许在某个循环中
如何通过初始化程序设置卷积器?如何让它在每个线程中使用单独的 FFTW 计划,而不为每个卷积重新计算 FFTW 计划?
干杯,亚历克斯。
android - 将 FFTW 链接到 Android NDK 应用程序
我目前正在编写一个流派分类应用程序,作为我在计算机工程专业的最后一年项目。我最初用 C 编写了特征提取代码(实现 FFTW),现在我需要通过 NDK 在 Android 上实现它。
这是我的第一个 NDK 项目,所以我仍然掌握了窍门,但我已经根据本指南为 Android 编译了 FFTW3 库。我没有做最后一步,因为我认为它不适合我的需要。
我的问题是,在编译步骤之后,如何使用调用它的主 NDK 应用程序中的库?只是将 LOCAL_STATIC_LIBRARIES 设置为我刚刚编译的 libfftw3.a,我在 Application.mk 中的所有内容都正常吗?然后我不需要像通常那样拥有任何 -lfftw3 链接器标志,对吗?
fortran - FFTW:真实到复杂和复杂到真实 2D 变换的问题
正如标题所述,我正在使用带有 Fortran 90/95 的 FFTW(版本 3.2.2)来执行真实数据的 2D FFT(实际上是一个随机数字段)。我认为向前迈出的一步正在奏效(至少我得到了一些输出)。但是我想通过 IFFT 检查所有内容,看看我是否可以重新构建原始输入。不幸的是,当我将复杂程序调用为真正的例程时,什么都没有发生,也没有得到错误输出,所以我有点困惑。以下是一些代码片段:
上述前进步骤似乎有效(r2c),但后退步骤似乎无效。我通过区分 u 和 recov 数组来检查这一点 - 它最终不为零。此外,recov 数组的最大值和最小值都为零,这似乎表明没有任何变化。
我查看了 FFTW 文档,并将我的实现基于以下页面http://www.fftw.org/fftw3_doc/Fortran-Examples.html#Fortran-Examples。我想知道这个问题是否与索引有关,至少这是我倾向于的方向。无论如何,如果有人可以提供一些帮助,那就太好了!
谢谢!