opencv pca输出的特征值都为0

我想将5*3的矩阵降维成5*1矩阵,调试时发现mean的3个值都是0,请问这是为什么呢?intn=5;intoldDim=3;intnewDim=1;voidmain()... 我想将5*3的矩阵降维成5*1矩阵,调试时发现mean的3个值都是0,请问这是为什么呢?
int n = 5;
int oldDim = 3;
int newDim = 1;
void main()
{

int i,j;
ifstream inTrainMat("D:/myProjects/ORB/ORB/result/pca/try.txt");
Mat trainMat = Mat::Mat( n,oldDim,CV_32FC1);
for (i=0;i<n;i++)
{
for (j=0;j<oldDim;j++)
{
int tmp;
inTrainMat>>tmp;
trainMat.at<int>(i,j) = tmp;
}
}

PCA pca(trainMat, Mat(), CV_PCA_DATA_AS_ROW, newDim);
Mat mean = pca.mean.clone();
Mat eigenvalues = pca.eigenvalues.clone();
Mat eigenvectors = pca.eigenvectors.clone();
for (i=0;i<oldDim;i++)
{
cout<<eigenvalues.at<float>(i,0)<<endl;
}
}
文件try.txt中的数据是:
23 3 9
8 1 77
1 4 6
4 28 5
6 7 3
展开
 我来答
qiu__peng
2013-11-25 · TA获得超过293个赞
知道小有建树答主
回答量:95
采纳率:0%
帮助的人:120万
展开全部
这句
trainMat.at<int>(i,j) = tmp;
改为
trainMat.at<float>(i,j) = tmp;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式