OpenCV C++中的矩阵复共轭

Posted

技术标签:

【中文标题】OpenCV C++中的矩阵复共轭【英文标题】:Matrix complex conjugate in OpenCV C++ 【发布时间】:2017-04-13 18:14:31 【问题描述】:

OpenCV 是否提供任何函数来执行矩阵复共轭?

我发现的唯一可能在某种程度上做到这一点的函数是 void mulSpectrums(InputArray a, InputArray b, OutputArray c, int flags, bool conjB=false) 函数。

根据文档,这是最后一个参数的作用:

当数组很复杂时,只需将它们相乘(每个元素) 与第二个数组元素的可选共轭

难道没有一种正确的方法可以只对一个矩阵执行此操作,而不必将其与具有上述函数的全一矩阵相乘吗?

我正在尝试对应用了 DFT 的矩阵进行复共轭。

【问题讨论】:

【参考方案1】:
Mat OnesArr = Mat::ones(YourArr.width, YourArr.height, CV_32F);

mulSpectrums(OnesArr, YourArr, OutputArr, int flags, True);

共轭(A) = I * 共轭(A) = mulSpectrum(I, A, , conj= true)

【讨论】:

虽然此代码可能(或可能不会)解决问题,但一个好的答案还应说明什么问题是什么以及代码如何提供帮助. 我已经解释过了。但建议自动编辑器删除该文本。 我猜“自动编辑器”是指编辑您问题的人? “像这样:”和“希望有帮助”不是对您的代码的解释。 好的,我已经为我的答案添加了解释。

以上是关于OpenCV C++中的矩阵复共轭的主要内容,如果未能解决你的问题,请参考以下文章

矩阵论基础

共轭矩阵怎么算?

离散傅立叶变换给出“正确”答案的复共轭

复数矩阵A 的共轭矩阵应该怎么算?谁对?

使用 C++ 在 OpenCV 中的矩阵中的多维数据

从 OpenCV 中的矩阵访问值