0

svmベースの分類器についてサポートが必要です。画像からHOG特徴を計算し、それらを使用してsvmをトレーニングしようとしています。現在、各画像の特徴と行を含む列を持つvector<vector>があります。CvSVMをトレーニングするには、機能を備えたマットマトリックスが必要です。ベクトルのベクトルを同じ形状のマットに変換するにはどうすればよいですか?

vector<vector<float>> totFeaturesVector;
for all images:
    vector<float> featuresVector;
    //populate featuresVector with 3780 floats...
    totFeaturesVector.push_back(featuresVector);
end for.
//numCols = 3780 numRows = 6.   6 images with 3780 features each. 

//Need to convert totFeaturesVector to 
//Mat training_mat(overallSamples,numCols,CV_32FC1); Something like this. 
4

2 に答える 2

3

final_output6x3780 であると仮定 しますMat

for(int i = 0; i < height; i++)
{
    for(int j = 0; j < width; j++)
    {
        final_output.at<float>(i,j) = vector[i][j];
    }
}
于 2013-03-05T16:01:19.170 に答える
0
vector<vector<float>> totFeaturesVector;
Mat_<float> M;
for (const auto & v: totFeaturesVector)
{
    Mat_<float> r(v), t=r.t(); // you need to do this
    M.push_back(t); // because push_back(Mat_<float>(v).t()) does not work
}
于 2015-03-23T17:39:00.977 に答える