opencv :: Мат из вектора вектора

Мне нужна помощь с моим классификатором на основе SVM. Я пытаюсь вычислить особенности HOG из изображений и использовать их для обучения SVM. Прямо сейчас у меня есть вектор< вектор> со столбцами, содержащими элементы и строки для каждого изображения. Для обучения CvSVM мне нужна матрица Mat с функциями. Как я могу преобразовать вектор векторов в Mat с той же формой?

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.

0

Решение

Если предположить, final_output это 6×3780 Mat

for(int i = 0; i < height; i++)
{
for(int j = 0; j < width; j++)
{
final_output.at<float>(i,j) = vector[i][j];
}
}
3

Другие решения

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
}
0

По вопросам рекламы [email protected]