//! 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(); }