void testsesmic() { char *pt="single_well"; int l = 201,m = 201,n = 851, l1=0,l2=0,iter_outer = 10; RawImage test; char dirbody[100]; unsigned char * indata=new unsigned char[l*m*n]; test.readImage(indata,"K:\\sdf\\geo\\Probe_fault_Amp.probe .raw",l*m*n);//F:\\PA1\\ST1\\SE1\\ //K:\\sdf\\MRI Raw *initial=new Raw(l,m,n); float *inputo=new float[l*m*n]; short min = 1000,max = -100; for (int i = 0; i < l*m*n; i++) { //change the big --little //float * p= (float *)(indata+i); //unsigned char * bp= (unsigned char *)p; //std:swap(bp[0],bp[3]); //std::swap(bp[1],bp[2]); min < indata[i] ? min=min:min=indata[i]; max > indata[i] ? max=max:max=indata[i]; //cal the max and min data /* if ( indata[i] >= 864 && indata[i] <= 1063 ) { inputo[i] = 100; } else { inputo[i] = (short )0; } */ inputo[i]=(float) indata[i]; } cout <<min << max <<endl; Raw *input=new Raw(l,m,n,inputo); //Filter *f=new Filter(); //input=f->guass3DFilter(input,3); RawImage *write=new RawImage(); ThreeDim_LevelSet *ls=new ThreeDim_LevelSet(); //ls->initialg(*input); for (int i=0; i<input->getXsize(); i++) { for (int j=0; j<input->getYsize(); j++) { for (int k=0; k<input->getZsize(); k++) { //if (input->get(i,j,k) >= 1) //{ // initial->put(i,j,k,-2); //} //else //if ((i >= 172 && i <= 352 && j >= 164 && j <= 376 && z>19 && z <)) if ((i >= 196 && i <= 220 && j >= 202 && j <= 267 && k > 40 && k < 50)) { initial->put(i, j, k, -2); } else { initial->put(i, j, k, 2); } } } } *initial=ls->minimal_surface(*initial,*input,5.0,0.1,-3,1.5,1,iter_outer,pt); //if you available this, don,t //forget to change the next line to initial test.writeMRI(*initial,"K:\\sdf\\geo\\data.raw");//F:\\PA1\\ST1\\SE1 }