[英]С++ OpenCV - cv::dft - Without computing negative frequency terms
如果我執行以下代碼:
std::vector<std::complex<double>> inArr { 0, 0, 0, 1, 0 };
std::vector<std::complex<double>> outArr;
cv::dft(inArr, outArr);
然后 outArr 數組將包含:
[
1.+0.j,
-0.80901699+0.58778525i,
0.30901699-0.95105652i,
0.30901699+0.95105652i,
-0.80901699-0.58778525i
]
雖然我需要一個不計算負頻率項的結果,即:
[
1.+0.j,
-0.80901699+0.58778525i,
0.30901699-0.95105652i
]
我怎樣才能做到這一點?
PS numpy.fft.rfft() 在 python 中的工作方式類似。
如果有人需要,我找到了答案。
解決方案在 FFTW 庫中。
但它是根據“GNU 通用公共許可證”分發的。
std::vector<double> inArr{ 0, 0, 0, 1, 0 };
std::vector<std::complex<double> > outArr(inArr.size());
fftw_execute(fftw_plan_dft_r2c_1d(inArr.size(), inArr.data(), (fftw_complex *)outArr.data(), FFTW_ESTIMATE));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.