0
我想從浮動向量(vGraph1)的3D向量中填充OpenCV Mat(float)。但是,由此產生的OpenCV Mat(測試)未正確填充,即只有第一列填充了正確的值,其餘爲垃圾值(-4.32e + 08)。我通過將文字寫入文本文件來確認錯誤。難道我做錯了什麼? 親切的建議。 謝謝。如何將3D向量轉換爲cv :: Mat
int nStates = 9; const int rows = 10; const int cols = 10;
vector < vector < vector<float> > > vGraph1;
for(int iii = 0; iii < rows; iii++){
vGraph1.push_back(vector<vector<float> >());
for(int jjj = 0; jjj < cols; jjj++){
vGraph1[iii].push_back(vector<float>());
for(int kkk = 0; kkk < nStates; kkk++){
vGraph1[iii][jjj].push_back(rand());
cout << vGraph1[iii][jjj][kkk] << " ";
}
cout << endl;
}
}
cout << "OpenCV Mat \n" << endl;
Mat test(rows, cols, CV_MAKE_TYPE(CV_32F, nStates));
for(int iii = 0; iii < rows; iii++){
float *ptest = test.ptr<float>(iii);
for(int jjj = 0; jjj < cols; jjj++){
for (int kkk = 0; kkk < nStates; kkk++){
ptest[kkk] = vGraph1[iii][jjj][kkk];
cout << ptest[kkk] << " ";
}
cout << endl;
}
}
FileStorage Save("Mat.txt", FileStorage::WRITE);
Save << "Node" << test;
Save.release();
什麼是pGraph? – Ediac
pGraph是一個指向具有3D圖像紋理的Graph結構的指針。 – Benson
@CNomad我編輯了代碼來表示清楚。 – Benson