型号的2D向量的PCA计算
PCA computation on 2D vectors of type double
我正在尝试在数据集上运行PCA,该数据集将我从文件中存储到2D向量中,如下所示:
std::vector<std::vector<double> > tmpVec;
while(std::getline(file, numStream))
{
std::istringstream buffer(numStream);
std::vector<double> line((std::istream_iterator<double>(buffer)),
std::istream_iterator<double>());
tmpVec.push_back(line);
i++;
}
现在,我需要在此上运行PCA,根据我的理解,我需要将其转换为type cv :: mat。这是如下所示:
cv::Mat dst(row, col, CV_64F, &tmpVec);
和通过我在它上运行pca的速度为:
cv::PCA pca(dst, cv::Mat(), CV_PCA_DATA_AS_ROW, 2);
当我尝试在PCA计算后尝试将其打印出来时,我最终会遇到垃圾值。我只需要弄清楚如何在2D双向量上运行PCA即可。对此的任何帮助或将我指向正确的方向都将是很棒的。预先感谢。
this:
cv::PCA pca(dst, cv::Mat(), CV_PCA_DATA_AS_ROW, 2);
期望带有连续数据作为输入的CV ::垫子,而std::vector<std::vector<double> > tmpVec;
尝试:
cv::Mat tmp;
while(std::getline(file, numStream))
{
...
cv::Mat m = cv::Mat(line).t(); // we need a row-vec
tmp.push_back(m);
}
cv::PCA pca(tmp, cv::Mat(), CV_PCA_DATA_AS_ROW, 2);
相关文章:
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 递归函数计算序列中的平方和(并输出过程)
- (C++)分析树以计算返回错误值的简单算术表达式
- 我的字符计数代码计算错误.为什么
- 在计算中使用二的幂有多有利可图
- 如何计算文件中的"columns"数?
- 计算排序向量的向量中唯一值的计数
- 如何使用 std::累积在 C++ 中计算总和立方体
- 使用Qt C++计算类似Git的SHA1哈希
- OpenCV C++.快速计算混淆矩阵
- cpp二进制搜索问题,计算给定数组中输入元素的出现次数
- C++如何计算用户输入的数字中的偶数位数
- 如何计算数据类型的范围,例如int
- 类似枚举的计算常量
- 计算每个节点的树高,帮助我解释这个代码解决方案
- 多个If语句与使用逻辑运算符计算条件的单个语句的比较
- 是否有一种计算CGAL中Surface_mesh对象的PCA的方法
- 型号的2D向量的PCA计算
- cv::PCA (openCV)计算数据本身的协方差矩阵?或者我们应该传递协方差矩阵给它
- C++PCA-计算协方差矩阵