OpenCV拆分功能无法正常工作

时间:2016-02-05 11:21:46

标签: c++ matlab opencv fft

我从dft的结果中获得了2个通道Mat,我想将它分成实部和虚部。但是,在OpenCV中使用split函数时,它会在拆分后给出一些错误。

cv::dft(fft2u_in,fft2u_in);

cv::Mat fftImg[2];
cv::split(fft2u_in,fftImg);

std::cout<<cv::sum(fft2u_in)<<std::endl;
std::cout<<cv::sum(fftImg[0])<<std::endl;
std::cout<<cv::sum(fftImg[1])<<std::endl;

输出结果为:

[3.39149e+08, 2.82766, 0, 0]  //sum before split
[3.39149e+08, 0, 0, 0]        //sum of real part after split
[11.1087, 0, 0, 0]            //sum of imag after split

实部相等,而虚部有巨大误差。我不知道为什么。是因为Mat类型更改还是其他任何内容?

此外,与在Matlab中执行dft相比,opencv计算的fft2几乎没有错误。这是否可以接受,有什么方法可以让它们相同吗?感谢。

0 个答案:

没有答案