2

我只是想澄清一下 OpenCV 中的 PCA。假设我有两行数据(A,B)。

一个 3 8 7

乙 2 4 5

如果我想在 OpenCV 中创建 PCA 模型,我必须对数据做什么?我是否必须减去平均值(例如从其数据点中减去 A 的平均值)还是 PCA 函数会这样做?

有人说 OpenCV PCA 期望数据被归一化(在 0 和 1 之间)。如果是这样,我如何正常化?

希望有人可以为我澄清这一点,因为 OpenCV 中的 PCA 在网络上的记录非常糟糕。

干杯...

4

1 回答 1

3

OpenCV 中的 PCA 数据不需要归一化。但是如果你已经有了平均值(来自一些之前的计算),你可以将它发送到 PCACompute() 函数来加速它。

OpenCV 裁判员:

PCACompute(data[, mean[, eigenvectors[, maxComponents ]]]) !mean, eigenvectors 参数

  • data – 输入样本存储为矩阵行或矩阵列。
  • mean - 可选平均值。如果矩阵为空( noArray() ),则根据数据计算平均值。

维基百科上有一篇关于数据规范化的好文章。

有关完整文档,请查看您安装的 doc/ 文件夹中的 opencv.pdf 文件。在某些版本中,它被命名为 opencv2refman.pdf

并且还尝试找到 Gary Bradsky 所著的“Learning OpenCV”一书,它的解释非常好。

于 2011-11-05T07:59:15.627 回答