使用c++高效地将浮点数写入CSV文件
Writing Floats to a CSV File Using C++ Efficiently
我目前使用Microsoft Kinect c++来获取骨骼坐标数据(x,y,z)以及时间戳。因此,这意味着每次写入需要61列数据。
我目前正在做的是在main()方法的开头设置csv文件w/列标题。然后我运行一个无限while循环来处理颜色/深度框架数据,并将框架数据保存到这个csv文件中:伪(因为我的代码太长):主方法(){上ostream myfile;myfile.open (cvsfile);
...
while(1) {
get color frame ready;
get depth frame ready;
get skelframe() ready;
... other stuff that isn't related to the problem
}
end of main method}
...
skelframe() {
setsup skeleton frame and image;
...
get the 60 data points (x,y,z) of 20 joints;
ostream myfile;
myfile.open(csvfile)
myfile<<all 60 data points + time_stamp<<endl;
}
所以在skelframe()方法中,我设置骨架,然后获得x,y,z坐标。我有几个问题:
我应该在myfile传递到skelframe(),这样我就不必做csv文件的设置每次方法循环通过while(1)?如果是这样,我只是传递它作为skelframe(…(myfile),或者是否有其他奇特的方法?
当我写所有这60个数据点到csv文件,是否有一个有效的方法来做到这一点,使用某种类型的缓冲区?我想使用固定的数组大小为60个浮点数+1字符串与","s,然后将整个缓冲区写入csv文件;查看stringstream,但不知道如何实现。需要一些示例代码的帮助,因为在这个较低层次的编码概念上相当迷失和新手。
谢谢!
写入myfile并不是瓶颈,但是我改变了代码,所以文件一直保持打开状态,直到我的程序完成运行。
真正的瓶颈是我在保存图像。我将图片类型从"。png"改为"。bmp",这增加了图片的大小,但提高了保存速度。我还将骨骼的数据收集流从cv_8UC3更改为CV_8UC1,这减少了我收集骨骼数据的微软Kinect中的传感器数量(它实际上只需要1个数据流)。
谢谢你的帮助
相关文章:
- 正在将csv文件读取为双精度矢量
- 如何选择在 csv 文件中输出的位置
- 有没有办法在不使用 getline() 的情况下从.csv文件中读取?
- 无法读取C++中的 CSV 文件
- 流:CSV 文件中的换行符
- 如何正确格式化csv文件?
- 正在分析CSV文件-C++
- 如何获取组件和搜索 CSV 文件
- C++ 中的 CSV 文件管理(特别是设置标头和每个标头将分别具有的值)
- 无法逐行读取.csv文件
- 非常快速地阅读 CSV 文件
- 该程序将.csv文件中的一系列单词放入数组中,然后随机生成句子.但它不起作用
- CSV文件之间的差异,使用getline()产生不同的结果
- 将 CSV 文件中的双倍值C++到矢量中
- C++ 将 CSV 文件的列写入向量
- 使用getline读取.csv文件时出现问题
- CSV文件未从缓冲区获取数据
- 错误的值是使用c++从CSV文件数据写入数组
- 将csv文件加载到MySQL C++中
- 读取C++中的大型CSV文件(~4GB)