我只是想澄清一下 OpenCV 中的 PCA。假设我有两行数据(A,B)。
一个 3 8 7
乙 2 4 5
如果我想在 OpenCV 中创建 PCA 模型,我必须对数据做什么?我是否必须减去平均值(例如从其数据点中减去 A 的平均值)还是 PCA 函数会这样做?
有人说 OpenCV PCA 期望数据被归一化(在 0 和 1 之间)。如果是这样,我如何正常化?
希望有人可以为我澄清这一点,因为 OpenCV 中的 PCA 在网络上的记录非常糟糕。
干杯...
OpenCV 中的 PCA 数据不需要归一化。但是如果你已经有了平均值(来自一些之前的计算),你可以将它发送到 PCACompute() 函数来加速它。
OpenCV 裁判员:
PCACompute(data[, mean[, eigenvectors[, maxComponents ]]]) !mean, eigenvectors 参数
- data – 输入样本存储为矩阵行或矩阵列。
- mean - 可选平均值。如果矩阵为空( noArray() ),则根据数据计算平均值。
维基百科上有一篇关于数据规范化的好文章。
有关完整文档,请查看您安装的 doc/ 文件夹中的 opencv.pdf 文件。在某些版本中,它被命名为 opencv2refman.pdf
并且还尝试找到 Gary Bradsky 所著的“Learning OpenCV”一书,它的解释非常好。