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