问题是四重变换(cv :: dft)一个带有四个描述符的信号。所以垫子应该是复数:(
但我的问题是如何制作复杂数字的垫子? 请帮我找一个示例或其他任何显示如何将复数(RE + IM)存储到垫子的示例?
有没有办法使用合并?
merge()
答案 0 :(得分:2)
我找到了答案:
我认为您可以在此处使用merge()
功能,请参阅 Documentation
它说:Composes a multi-channel array from several single-channel arrays.
参考:How to store complex numbers in OpenCV matrix?
答案 1 :(得分:2)
查看opencv repo中的好dft sample,同时查看dft tutorial
所以,如果你有一个Mat真实和一个Mat imag(两者都是CV_32FC1类型):
Mat planes[] = {real,imag};
Mat complexImg;
merge(planes, 2, complexImg); // complexImg is of type CV_32FC2 now
dft(complexImg, complexImg);
split(complexImg, planes);
// real=planes[0], imag=planes[1];