2016-04-05 13 views
0

私は opencvで宣言しています。私はすべての値を読んで固有ベクトルに割り当てたい。OpenCv C++読み込みopencv固有ベクトルに割り当てられたマット

#include <opencv2/core.hpp> 
#include <opencv2/opencv.hpp> 
#include <vector> 
#include <set> 
#include <Eigen/Core> 
#include <Eigen/Dense> 
using namespace Eigen; 

int main(int argc, char** argv) 
{ 
Mat data; 
int unique = data.rows; 
VectorXd actualLabel(unique); 
for(int i=0;i<unique;i++) 
{ 
    for(int k = 0; k < train_label.cols; k++) 
    { 
     int val = train_label.at<double>(i, k); 
     actualLabel(i) = val; 
     cout<< actualLabel(i) << endl; 
    } 
} 

return 0; 
} 

ですが、出力はすべてベクトルでVector actualLableです。 Matデータから実際の値を取得するにはどうすればよいですか?

+0

なぜ変数を書き込む前にint変数に値を格納していますか? – alexisrozhkov

+0

@ user3896254私はどこで変更する必要がありますか? –

+0

'int val = train_label.at (i、k);' to 'double val = train_label.at (i、k);' – alexisrozhkov

答えて

0

私はここで解決策は完全なプログラム

#include <opencv2/core.hpp> 
#include <opencv2/opencv.hpp> 
#include <vector> 
#include <set> 
#include <Eigen/Core> 
#include <Eigen/Dense> 
using namespace Eigen; 

int main(int argc, char** argv) 
{ 
//example if data with assigned value 
Mat kern = (Mat_<double>(8, 1) << 0, -1, 0,-1, 5, -1,0, -1); 
cout << kern << endl; 
int unique = data.rows; 
VectorXd actualLabel(unique); 
for(int i=0;i<unique;i++) 
{ 
    for(int k = 0; k < train_label.cols; k++) 
    { 
     double val = train_label.at<Vec2d>(i, k)[0]; 
     actualLabel(i) = val; 
     cout<< actualLabel(i) << endl; 
    } 
} 

return 0; 
} 

を共有したいと思い見つかったものは、私はまだ最短コードをここに向上させることができるかどうかコメントしてください。 ありがとう

関連する問題