⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fileread.c

📁 超声波成像算法
💻 C
字号:
#include <stdio.h>
#include <math.h> 
#include <stdlib.h>
#include "Reconst.h"
#include <string.h>

int * fileread(AINF *array, DAQINF *daq){
	
	
	double	*tx_lambda, *ty_lambda, *rx_lambda, *ry_lambda,
			*tx_m, *ty_m, *rx_m, *ry_m,
			radTr, radRc;
	int		numTr, numRc,nsht, i,j,k,*rec;
	char	fname[STRLEN],ename[STRLEN];
	FILE	*fp;

	Onsoku = 1513;
	ReadParameter(array,daq);
	fp = fopen(array->name,"r");
	fscanf(fp,"%d",&numTr);
	fscanf(fp,"%lf",&radTr);
	fscanf(fp,"%d",&numRc);
	fscanf(fp,"%lf",&radRc);
	
	tx_lambda	= (double *)calloc(numTr*2,sizeof(double));
	rx_lambda	= (double *)calloc(numRc*2,sizeof(double));
	tx_m		= (double *)calloc(numTr*2,sizeof(double));
	rx_m		= (double *)calloc(numRc*2,sizeof(double));	
	
	if (tx_lambda==NULL||rx_m==NULL||tx_lambda==NULL||rx_lambda==NULL){
	  puts("Memory over!");
	  exit(-1);
	}
	ty_lambda = tx_lambda+numTr;
	ry_lambda = rx_lambda+numRc;
	ty_m = tx_m+numTr;
	ry_m = rx_m+numRc;
		
	for(i=0;i<numTr;i++){
		fscanf(fp,"%lf,%lf",&tx_m[i],&tx_m[i+numTr]);
	}
	for(i=0;i<numRc;i++){
		fscanf(fp,"%lf,%lf",&rx_m[i],&rx_m[i+numRc]);
	}
	fclose(fp);
	nsht = daq->nsht;

	strcpy(ename,daq->echoname);
	rec = alloc_i(nsht*numRc*NTIME);

	if(nsht==0){
		sprintf(fname,"%s.csv",ename);
	}
	else{
		sprintf(fname,"%s_0.csv",ename);
	}
	for(i=0;i<nsht;i++){
		fp=fopen(fname,"r");
		if(fp==NULL){
			printf("File open error(%s)\n",fname);
			exit(-1);
		}
		for(j=0;j<NTIME;j++){
			for(k=0;k<numRc-1;k++){
				fscanf(fp,"%d,",&rec[i*numRc*NTIME+k*NTIME+j]);
			}
			fscanf(fp,"%d\n",&rec[i*numRc*NTIME+k*NTIME+j]);
		}
		fclose(fp);
		sprintf(fname,"%s_%d.csv",ename,i+1);
	}

	printf("radTr=%lf , radRc=%lf\n",radTr,radRc);

//	onsoku = 331.4 + 0.61*temp;	//嬻拞 
								//悈拞
	Unitlength   = Onsoku/Spfrq;

	for ( i=0; i<numTr; i++ ) {
		tx_lambda[i] = tx_m[i]/(Unitlength*SPRATE);
		ty_lambda[i] = ty_m[i]/(Unitlength*SPRATE);
	}
	for ( i=0; i<numRc; i++ ) {
		rx_lambda[i] = rx_m[i]/(Unitlength*SPRATE);
		ry_lambda[i] = ry_m[i]/(Unitlength*SPRATE);
	}
	array->rnum=numRc;
	array->tnum=numTr;
	array->tx=tx_lambda;  array->ty=ty_lambda;  array->radTr=radTr;
	array->rx=rx_lambda;  array->ry=ry_lambda;  array->radRc=radRc;
	return rec;
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -