gpt4 book ai didi

c++ - 如何在 C++ 中读取文本文件并创建 Mat 对象

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:14:36 25 4
gpt4 key购买 nike

您好,我可以将 Mat 对象写入文本文件。如下,

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( );

在我的前两行代码中,我打印了行数和列数,以便在我回读时使用。但我无法读取文本文件并再次创建 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;
}

最佳答案

使用 opencv FileStorage 可能更容易:

// write:
Mat m;
FileStorage fs("myfile.txt",FileStorage::WRITE);
fs << "mat1" << m;

// read:
FileStorage fs("myfile.txt",FileStorage::READ);
fs["mat1"] >> m;

关于c++ - 如何在 C++ 中读取文本文件并创建 Mat 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19200844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com