1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
   | char *buffer = new char [length_reading];
 
ifstream input_file;
input_file.open(tfilename[proj].c_str(), ifstream::in);
cout << "file opened: " << tfilename[proj] << endl;
 
if(input_file == NULL)
  {
   cerr<<"Cannot open input file \n";
   return;
   }
 
input_file.read(buffer3,length_reading);
 
if (!input_file)
  {
    std::cout << "error: only " << input_file.gcount() << " could be read" << endl;
    return;
   }
 
int buffer_i = 0;
 
// fill the matrix data with all projections
   for(int jj=0; jj <= tsize[0]-1; jj++) {
       for(int kk=0; kk <= tsize[1]-1; kk++) {
 
	  char num1 = buffer[buffer_i];
	  buffer_i++;
	  char num2 = buffer[buffer_i];
	  buffer_i++;
 
	  unsigned short number = 0;
	  number |= (unsigned char)num2;
	  number |= num1 << 8;
	  unsigned short number2;
	  number2 = (number>>8)|(number <<8);
 
	  double value_corrected;
	  value_corrected = -log((double(number2)-double(dark[jj][kk]))/(double(bright[jj][kk])-double(dark[jj][kk])));
	   if (value_corrected<0)
		{data[jj][kk]= 0;}
	   else
		{data[jj][kk] = int16_t(value_corrected*1000);}
           } //end for tsize[0]
} //end for tsize[1]
 
delete[] buffer;
 
input_file.close(); | 
Partager