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

📄 sector2vol.c

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

void Sector2Vol(double *vsector, double *vol,DAQINF daq, VIEWINF view){
	int i_theta,i_phai,i_sector,ix,iy,iz,i_vol,i;
	int nx,ny,nz,n_theta,n_phai,n_sector,i1,a1,a2,a3;
	double x,y,z,dx,dy,dz,drange,theta_max,dtheta;
	double delta1,delta2,delta3,distl;
	double v000,v001,v010,v011,v100,v101,v110,v111;
	double theta,phai,sector,max;
	distl = Distm/Lambda;
	nx = view.nx;
	ny = view.ny;
	nz = view.nz;
	n_theta = view.n_theta;
	n_phai = n_theta;
	n_sector = view.n_sector;
	//MaxFind(n_theta*n_phai*n_sector,vsector);
	drange = view.range/view.n_sector;
	theta_max = view.theta_max;
	dtheta = 2.0*theta_max/(double)n_theta;
	dx = view.vol_size/Lambda/(double)nx;
	dy = view.vol_size/Lambda/(double)ny;
	dz = view.vol_size/Lambda/(double)nz;  
	i_vol=0;
	a1 = n_sector*n_theta;
	a2= n_sector;
	a3=1;
	//vol = (double *)calloc(nx*ny*nz,sizeof(double));
	for(iz=0;iz<nz;iz++){
		z=(distl+(double)(iz-nz/2)*dz);	
		for(ix=0;ix<nx;ix++){
			x=(double)(ix-nx/2)*dx; 
			for(iy=0;iy<ny;iy++){
				y=(double)(iy-ny/2)*dy;
				theta = (atan2(x, z)+theta_max)/dtheta;
				phai = (atan2(y, z)+theta_max)/dtheta;
				sector = (sqrt(x*x+y*y+z*z)-view.range_min)/drange;
				i_theta = (int)theta;
				i_phai = (int)phai;
				i_sector = (int)sector;	
				delta1 = theta - (double)i_theta;
				delta2 = phai - (double)i_phai;
				delta3 = sector- (double)i_sector;
				if(i_sector>=0&&i_sector<n_sector&&i_theta>=0&&i_theta<n_theta
					&&i_phai>=0&&i_phai<n_phai){
					i1=a1*i_theta+a2*i_phai+i_sector;
					v000 = vsector[i1];
					v001 = vsector[i1+a3];
					v010 = vsector[i1+a2];
					v011 = vsector[i1+a2+a3];
					v100 = vsector[i1+a1];
					v101 = vsector[i1+a1+a3];
					v110 = vsector[i1+a1+a2];
					v111 = vsector[i1+a1+a2+a3];
					vol[i_vol] = (1.0-delta1)*(1.0-delta2)*(1.0-delta3)*v000 +
							(1.0-delta1)*(1.0-delta2)*delta3*v001 +
							(1.0-delta1)*delta2*(1.0-delta3)*v010 +
							(1.0-delta1)*delta2*delta3*v011 +
							delta1*(1.0-delta2)*(1.0-delta3)*v100 +
							delta1*(1.0-delta2)*delta3*v101 +
							delta1*delta2*(1.0-delta3)*v110 +
							delta1*delta2*delta3*v111;
					}//end if  
					i_vol++;		
			}//iy loop
		}//ix loop
	}//iz  loop
	/*
	i_vol=0;
	for(ix=0;ix<nx;ix++){
		for(iy=0;iy<ny;iy++){
			for(iz=0;iz<nz;iz++){
				vol[ix+nx*iy+nx*ny*iz]=vsector[i_vol++];
			}
		}
	}
	*/
	max=MaxFind(view.nx*view.ny*view.nz,vol);
	for(i=0;i<view.nx*view.ny*view.nz;i++){
		vol[i] = vol[i]/max;
	}
	max=MaxFind(view.nx*view.ny*view.nz,vol);
}
				



⌨️ 快捷键说明

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