我只是想澄清一下OpenCV中的PCA。假设我有两行数据(A,B)。
A 3 8 7
B 2 4 5
如果我想在OpenCV中创建PCA模型,我该如何处理数据?我是否必须减去均值(例如从数据点中减去A的平均值)或者PCA函数是否这样做?
有人说OpenCV PCA期望数据被标准化(在0和1之间)。如果是这样,我该如何规范化?
希望有人可以为我澄清这一点,因为OpenCV中的PCA在网络上的记录非常糟糕。
干杯...
答案 0 :(得分:3)
OpenCV中的PCA数据需要不才能进行标准化。但是如果你已经有了平均值(从一些previuos计算),你可以将它发送到PCACompute()函数来加快它。
OpenCV refman:
PCACompute(data [,mean [,eigenvectors [,maxComponents]]])!mean,eigenvectors 参数
- data - 输入样本存储为矩阵行或矩阵列。
- mean - 可选的平均值。如果矩阵为空(noArray()),则计算平均值 来自数据。
有一篇关于数据规范化的文章on Wikipedia。
有关完整文档,请查看应该位于安装的doc /文件夹中的opencv.pdf文件。在某些版本中,它名为opencv2refman.pdf
还试图找到Gary Bradsky撰写的“学习OpenCV”这本书,它不仅仅是为了解读。