我正在尝试用OpenCV在C++中计算密度泛函。我想要DFT的绝对值。为了计算它,我这样做:
vector<float> areas, X_mag;
cv::Mat X;
...
cv::dft(areas, X, cv::DFT_COMPLEX_OUTPUT);
面积是一个50x1的向量,我想将面积密度的绝对值存储在X_mag中
问题是,我认为没有办法直接计算绝对值,我也找不到任何可以直接计算绝对值的函数。
我尝试使用std:cv::absdiff(X, cv::Scalar::all(0), X_mag);
,但只有当我使用std::vector而不是cv::Mat时,它才有效。
如果我不使用DFT_COMPLEX_OUTPUT,我只能得到真实的部分,所以我不需要。
我在考虑手动计算绝对值(sqrt(Re(X)^2 + Im(X)^2),但我认为它太慢了,而且我不认为cv::Mat是这样迭代的。
如何获得50x1DFT的绝对值向量?
https://stackoverflow.com/questions/69348948
复制相似问题