Matlab中的数组保存为csv文件,在VC里面使用

由于图像处理用到Matlab的一些算法,得到一些数组数据(三维重构的深度数据)。

在VC中使用OpenGL画图,需要使用这些数据(深度数据)做显示用。


在Matlab下使用语句:csvwrite(‘depthMap‘,depthMap); //后面的depthMap是数组变量,前面的depthMap是csv文件名。

函数ReadCsv是读取csv文件(二维数组)到指定变量depthMap。


变量的定义:

double depthMap[240][320] = {0}; //深度图


调用函数:

//读取csv文件:深度图depthMap.csv
ReadCsv(depthMap); //调用函数读取CSV文件中的数据

void ReadCsv(double depthMap[][320])
{
	FILE* fd;

	errno_t err = fopen_s(&fd, "depthMap","r");
	if( err )
		printf_s( "The file depthMap.csv was not opened\n" );
	else
	{
		// Set pointer to beginning of file:
		//fseek( fd, 0L, SEEK_SET );

		int i = 0;
		while (i < 240)
		{
			int j = 0;
			double a = 0;
			while (j < 319)
			{
				fscanf(fd, "%lf,", &a);
				depthMap[i][j] = a;
				++ j;
			}
			fscanf(fd, "%lf\n", &a);
			depthMap[i][j] = a;
			++ i;
		}
	}
	fclose(fd);
}


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。