Esempio n. 1
0
void ImageSpecClass::ReadFirstImage(Image &img, SystemContext &sys_context, ImageControlOpts &img_control, SpatialContext &loc_context )
{
  img.SetImgLoadImmediate ( false );
  img.SetNumAcqFiles ( 1 );
  img.SetIgnoreChecksumErrors ( img_control.ignoreChecksumErrors );
  bool datIsSdat = false;
  char *firstAcqFile = ( char * ) malloc ( strlen ( sys_context.dat_source_directory ) + strlen (
                         img_control.acqPrefix ) + 10 );
  sprintf ( firstAcqFile, "%s/%s%04d.dat", sys_context.dat_source_directory, img_control.acqPrefix, 0 );
  /* Check to see if our dat file is really an sdat file in disguise, if so updat our suffix and doing sdats. */
  if (H5File::IsH5File(firstAcqFile)) {
    datIsSdat = true;
    img_control.sdatSuffix = "dat";
    img_control.doSdat = true;
  }
  char *firstSdatAcqFile = ( char * ) malloc ( strlen ( sys_context.dat_source_directory ) + strlen (
                         img_control.acqPrefix ) + 11 );
  sprintf ( firstSdatAcqFile, "%s/%s%04d.%s", sys_context.dat_source_directory, img_control.acqPrefix, 0, img_control.sdatSuffix.c_str() );

  if (isFile(firstAcqFile) && !datIsSdat) {
    if ( !img.LoadRaw ( firstAcqFile, 0, true, false ) )
      {
        exit ( EXIT_FAILURE );
      }
  }
  else if(isFile(firstSdatAcqFile)) {
    TraceChunkSerializer reader;
    SynchDat sdat;
    reader.Read(firstSdatAcqFile, sdat);
    img.InitFromSdat(&sdat);
    if (loc_context.regionXSize == 0){ // not explicitly set, set now
      loc_context.regionXSize = sdat.GetColStep();
      loc_context.regionYSize = sdat.GetRowStep();
    }
    if ((sdat.GetColStep() != (size_t)loc_context.regionXSize) ||
	(sdat.GetRowStep() != (size_t)loc_context.regionYSize)) {
      fprintf(stdout, "Warning: Analysis region sizes width=%d, height=%d do not match sdat region sizes width=%d, height=%d\n", loc_context.regionXSize, loc_context.regionYSize, (int)sdat.GetColStep(), (int)sdat.GetRowStep());
    }
  }
  else {
    exit ( EXIT_FAILURE );
  }
  img.SetOffsetFromChipOrigin ( firstAcqFile );
  free ( firstAcqFile );
  free ( firstSdatAcqFile );

  if ( !loc_context.IsSetRegionXYSize() ){ // not yet set, has to be set now
    loc_context.SetRegionXYSize(50, 50);
  }

  img.SetDir ( sys_context.results_folder );
  img.SetFlowOffset ( img_control.flowTimeOffset );
}
Esempio n. 2
0
void ImageSpecClass::ReadFirstImage(Image &img, SystemContext &sys_context, ImageControlOpts &img_control, SpatialContext &loc_context )
{
  img.SetImgLoadImmediate ( false );
  img.SetNumAcqFiles ( 1 );
  img.SetIgnoreChecksumErrors ( img_control.ignoreChecksumErrors );
  char *firstAcqFile = ( char * ) malloc ( strlen ( sys_context.dat_source_directory ) + strlen (
                         img_control.acqPrefix ) + 10 );
  sprintf ( firstAcqFile, "%s/%s%04d.dat", sys_context.dat_source_directory, img_control.acqPrefix, 0 );
  if ( !img.LoadRaw ( firstAcqFile, 0, true, false ) )
    {
      exit ( EXIT_FAILURE );
    }
  img.SetOffsetFromChipOrigin ( firstAcqFile );
  free ( firstAcqFile );

  if ( !loc_context.IsSetRegionXYSize() ){ // not yet set, has to be set now
    loc_context.SetRegionXYSize(50, 50);
  }

  img.SetDir ( sys_context.results_folder );
  img.SetFlowOffset ( img_control.flowTimeOffset );
}