txt 中的矢量垫

Vector mat in txt

本文关键字:txt      更新时间:2023-10-16

>我有一个矢量 Mat 文件,我想将其存储在 txt 文件中。每个 mat 文件的大小为 1x4500,我总共有 5000 个矢量。我尝试使用上面的代码存储在 txtfile 中:

void writeMatToFile(cv::Mat& m, const char* filename){
ofstream fout(filename);
for(int i=0; i<m.rows; i++){
    for(int j=0; j<m.cols; j++){
        fout<<m.at<float>(i,j)<<"t";
    }
    fout<<endl;
}
fout.close();

}

主要:

    string file = "output.txt";
writeMatToFile(image,file.c_str());

但是,我遇到了未处理的异常错误。

使用您自己的格式以二进制模式写入数据。像这样的东西:mat_count|shape1|data1(row_first)|shape2...

std::fstream将在文本模式或二进制模式下为您完成更难的工作。您应该尝试两者以查看最终大小。

如果你的垫子数据是类似于uint8uint16,二进制模式会好得多。文本模式的问题在于,您需要为每个单个数据添加一个分隔符,这会向文件添加额外的字节。然而,文本模式可以压缩数据:"1.5"3与8字节(双倍)。

最后,如果您绝对想要文本模式下的文件,您可以在流程结束时压缩它并查看比率。

相关文章:
  • 没有找到相关文章