Привет, я могу написать объект Mat в текстовый файл. Как указано ниже,Как прочитать текстовый файл и создать объект Mat в C++
std::fstream outputFile;
outputFile.open("myFile.txt", std::ios::out) ;
outputFile << des_object.rows << std::endl;
outputFile << des_object.cols << std::endl;
for(int i=0; i<des_object.rows; i++)
{
for(int j=0; j<des_object.cols; j++)
{
outputFile << des_object.at<float>(i,j) << std::endl;
}
}
outputFile.close();
В моем коде в первых двух строках im печатается количество строк и количество столбцов, которое нужно использовать, когда я читаю его обратно. Но я не смог прочитать текстовый файл и снова создать объект Mat.
Следующий код, который я попробовал. Не уверен, правильный ли код.
Mat des_object1;
std::ifstream file("myFile.txt");
std::string str;
int rows;
int cols;
int a = 0;
while (std::getline(file, str))
{
int i = 0;
int j = 0;
if(a == 0){
rows = std::stoi(str);
}else if(a == 1){
cols = std::stoi(str);
}else{
for(i; i< rows; i++)
{
for(j; j<cols; j++)
{
des_object1.at<float>(i,j) = ::atof(str.c_str());
break;
}
}
}
++a;
}
Эта работа, когда я пишу мат в файл. Но когда я прочитал, он дал мне пустой – posha
@berak, ссылка, которую вы указали, упоминает, что FileStorage работает для файлов xml/yaml, ничего не упоминается о файлах .txt. Я пробовал читать файл .txt, но это дало мне ошибку: Ошибка Parsing: Valid xml должен начинаться с ''> в icvXMLParse ................. – Ruchir