IMPEM_BEGIN_INTERNAL_NAMESPACE EMHeader::EMHeader(const DensityHeader &header) { nx = header.get_nx(); ny = header.get_ny(); nz = header.get_nz(); magic = header.magic; type = header.get_data_type(); for (short i = 0; i < DensityHeader::COMMENT_FIELD_SINGLE_SIZE; i++) { comment[i] = header.comments[0][i]; } voltage = header.voltage; Cs = header.Cs; Aperture = header.Aperture; Magnification = header.Magnification; Postmagnification = header.Postmagnification; Exposuretime = header.Exposuretime; Objectpixelsize = header.get_spacing(); Microscope = header.Microscope; Pixelsize = header.Pixelsize; CCDArea = header.CCDArea; Defocus = header.Defocus; Astigmatism = header.Astigmatism; AstigmatismAngle = header.AstigmatismAngle; FocusIncrement = header.FocusIncrement; CountsPerElectron = header.CountsPerElectron; Intensity = header.Intensity; EnergySlitwidth = header.EnergySlitwidth; EnergyOffset = header.EnergyOffset; Tiltangle = header.Tiltangle; Tiltaxis = header.Tiltaxis; MarkerX = header.MarkerX; MarkerY = header.MarkerY; lswap = header.lswap; }
//! Function to transfer the (compatible) information content from DensityHeader //! to ImageHeader void DensityHeader_to_ImageHeader(const DensityHeader& dh,ImageHeader& h) { // map size h.set_number_of_slices(dh.get_nz()); h.set_number_of_rows(dh.get_ny()); h.set_number_of_columns(dh.get_nx()); // mode switch (dh.get_data_type()) { case 1: h.set_image_type(ImageHeader::VOL_BYTE); break; case 2: h.set_image_type(ImageHeader::VOL_INT); break; case 5: h.set_image_type(ImageHeader::VOL_IMPEM); break; } // Reversed image? if(algebra::get_is_big_endian()) { h.set_reversed(dh.lswap!=1); } else { h.set_reversed(dh.lswap==1); } // Origins and pixel size h.set_origin(algebra::Vector3D(dh.get_xorigin(), dh.get_yorigin(), dh.get_zorigin()) ); h.set_object_pixel_size(dh.get_spacing()); // Statistical values. There is no field in DensityHeader to guarantee that // they are computed or correct, so they are ignored h.set_fImami(0.); h.set_fFmax(0.); h.set_fFmin(0.); h.set_fAv(0.); h.set_fSig(0.); // These fields don't have an equivalent in DensityHeader h.set_Scale(1.); h.set_fAngle1(0.); h.set_Weight(1.); h.set_Flip(0.); h.set_fNrec(0.); h.set_fNlabel(0.); h.set_fIhist(0.); h.set_fLabrec(0.); h.set_fIangle(0.); h.set_fLabbyt(0.); h.set_fLenbyt(0.); h.set_fFlag(0.); // Ignore all the Euler angles for the Spider Image // Set time and date h.set_date(); h.set_time(); }