首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从逆离散FFT到谱图

从逆离散FFT到谱图
EN

Stack Overflow用户
提问于 2010-07-26 18:55:20
回答 2查看 853关注 0票数 0

我需要找到一些通用的C++库,它采用反fft输出(fftw_complex格式,即两倍),并将这些数据转换为图像文件,如png。我可以用dffts来获取2d数据(使用10log 10(re_re+im_im)来获得每个频率分量的幅值),但我不知道哪个图像库可以工作。

我曾经使用过一个名为zimage的旧程序,但它似乎不再可用了。我没有MATLAB在我的Ubuntu9.10系统(但我有八度)

八度可以生成瀑布图像吗?我也需要把声谱图转换成wav声音文件。

有什么主意吗?

EN

回答 2

Stack Overflow用户

发布于 2010-09-16 07:15:27

最容易创建的图像格式是PNM。您可以将其打印为文本文件,然后使用大多数图形程序进行转换。下面是维基百科页面中的一个例子:

代码语言:javascript
复制
P2 24 7 15
0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
0  3  3  3  3  0  0  7  7  7  7  0  0 11 11 11 11  0  0 15 15 15 15  0
0  3  0  0  0  0  0  7  0  0  0  0  0 11  0  0  0  0  0 15  0  0 15  0
0  3  3  3  0  0  0  7  7  7  0  0  0 11 11 11  0  0  0 15 15 15 15  0
0  3  0  0  0  0  0  7  0  0  0  0  0 11  0  0  0  0  0 15  0  0  0  0
0  3  0  0  0  0  0  7  7  7  7  0  0 11 11 11 11  0  0 15  0  0  0  0
0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0

将该文本保存在一个名为"feep.pgm“的文件中,您将看到我的意思。

格式化

您必须将您的10log 10信息缩放到像素值。

票数 2
EN

Stack Overflow用户

发布于 2010-11-24 02:52:23

OpenCV是一个库,它可以处理PNG文件以及各种其他格式。它应该可以在您的Ubuntu9.10系统上使用apt get libcv-dev (从内存中,您可能需要再次检查包名)。

代码语言:javascript
复制
/*
 * compile with:
 *
 * g++ -Wall -ggdb -I. -I/usr/include/opencv -L /usr/lib -lm -lcv -lhighgui -lcvaux filename.cpp -o filename.out
 */

#include <cv.h>    
#include <highgui.h>

/*
 * Your image dimensions.
 */
int width;
int height;

CvSize size = cvSize(width, height);

/*
 * Create 3-channel image, unsigned 8-bit per channel.
 */
IplImage *image = cvCreateImage(size, IPL_DEPTH_8U, 3);

for (int i = 0; i < width; ++i)
for (int j = 0; j < height; ++j)
{
    unsigned int r;
    unsigned int g;
    unsigned int b;

    /*
     * Keep in mind that OpenCV stores things in BGR order.
     */
    CvScalar bgr = cvScalar(b, g, r);
    cvSet2D(image, i, j, bgr);
}

cvSaveImage("filename.png", image);
cvReleaseImage(&image);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3338001

复制
相关文章

相似问题

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