face alignment读取.pts文件

来源:互联网 发布:金字塔程序化交易软件 编辑:程序博客网 时间:2024/06/05 07:37

在c++下,.pts文件中存储了landmark点的坐标,其内容如下所示:

version: 1n_points: 68{446.000 91.000449.459 119.344450.957 150.614460.552 176.986471.486 202.157488.087 226.842506.016 246.438524.662 263.865553.315 271.435578.732 266.260599.361 248.966...}

想要通过c++读取其中的点的坐标,需要用到fscanf函数,以及正则表达式。
整体代码如下:

char filename[100];sprintf(filename, "300W/01_Indoor/indoor_%03d.pts", i);FILE *f = fopen(filename,"r+");for (int k = 0; k<3; k++) fscanf(f, "%*[^\n]%*c");//跳过前三行,用到了正则表达式Mat1f temp(2 * 68, 1);//点云存储在一个float类型的向量中。for (int j = 0; j<68; j++){    fscanf(f, "%f", &temp(2 * j, 0));//依次读取每一行中的float数值,并存储下来    fscanf(f, "%f", &temp(2 * j + 1, 0));}fclose(f);

参考:
跳过某一行(百度知道)

补充:
关于文件读取:如果一个存储数据的文件里有乱码,那么在读取该文件时,读到乱码之后,所有的数据都有可能改变。这点十分值得注意。

0 0
原创粉丝点击