matlab - 如何在opencv中将Matlab fft函数转换为cvDft

我对opencv非常陌生。我需要将代码从Matlab转换为opencv。

a = [0;0;0;0;0;0;0;0;0.09707;0.0998;0.1202;-0.1606;-0.0913;0.1523;0.1288];
c = abs(fft(a,15));
c >>     0.3463
    0.1056
    0.3608
    0.5705
    0.4232
    0.2407
    0.1486
    0.1488
    0.1488
    0.1486
    0.2407
    0.4232
    0.5705
    0.3608
    0.1056

C是我从matlab获得的结果。而我将为此使用cvDFT时,结果是不同的。请帮助我举一些例子..我的c代码在下面给出...
CvMat* fftin = cvCreateMat(nn,1,CV_64FC2);
CvMat* fftout = cvCreateMat(nn,1,CV_64FC2);
cvZero(b);    ////consider a hav the value of mat b is  empty for imgin
cvMerge(a,b,NULL,NULL,fftin);
cvDFT(fftin,fftout,CV_DXT_FORWARD,0);
cvSplit(fftout,out_real,out_img,0,0);
    for (int i = 0;i<out_real->rows;i++)
    {
        double val11= cvGetReal2D(out_real,i,0);
        double val12= cvGetReal2D(out_img,i,0);
        val11 = abs(val11);
        val12 = abs(val12);
        printf("DFT value is:%f  %f\n",val11,val12);
        cvSetReal2D(C_out,i,0,val11);
    }

最佳答案

在第一个示例中,您似乎正在打印结果中每个复数值的大小。但是在第二个示例中,您似乎正在打印复数值中每个分量的绝对值(例如X和Y而不是长度或斜边)。

https://stackoverflow.com/questions/10425658/

相关文章:

python - 在 Windows 7 上为 Python 2.7 安装 OpenCV

qt - 带有 QtCreator 的 Ubuntu 12.04 上的 OpenCV 2.4

python - 使用opencv编写pgms时如何更改最大灰度的默认值?

c# - C#中的骨架化OpenCV

image-processing - 开源库可消除视频帧的运动模糊吗?

iphone - OpenCV cv::dft()iOS断言错误

xcode - OpenCv ImShow()函数闪烁

image-processing - 编程相机以选择ROI

opencv - 使用什么方法(在OpenCV中)将标记与适当的骨骼结构相关联?

python - 使用开放式CV在Python中进行背景提取