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