Summary of changes in STIR release 1.2 (dated 01/04/2004)
Version 1.2 is really a maintenance/bug fix release, but includes some new
functionality that is still a bit experimental.
Nearly all work on this update was by Kris Thielemans and
Sanida Mustafovic.
Thanks to Frédéric
Schoenahl and Oliver Nix for helping to fix some bugs, and to
Pablo Aguiar, Frédéric Lamare, Frédéric
Schoenahl and Χαραλαμπος
Τσουμπας (Charalampos Tsoumpas)
for testing.
Also many thanks to Mérence Sibomana for updating the LLN ecat matrix library to
iron out some problems with STIR.
Summary for endusers (also to be read by developers)
Bugs removed that affect users
- converting to ECAT6 sinograms: subheader.sampling_distance was set in mm instead of cm
- converting to ECAT7 sinograms: mhead.bin_size was written in
mm but should have been cm. As a consequence, the recon_zoom
factor for images was set 10 times too large.
- GE Advance parameters are sligthly adjusted to be the same as the VOLPET info [Roman Krais]
- ifheaders_for_ecat7 wrote filenames as f#g#b#d#, but it should have been f#g#d#b#. This has now
been corrected. Note that the data was alright, only that the filename didn't follow the usual
ECAT matrix order. Also, we found a bug that caused a crash when writing out a warning that the file
is not ok :-/
Code changes that influence your results
- the forward projector using Ray Tracing has changed to be more numerically
stable, and gives now the same results as the projection matrix using Ray
Tracing. It is also faster on non-brain dead compilers. However, all this
means it gives marginally different results from the previous version
(mainly for non-zero pixels at the edge of the FOV).
New functionality of existing utilities
- stir_math: - added option of thresholding the data, and adding scalars
- SSRB: added trimming option
- "Ray Tracing" projection matrix: added facilities for disabling symmetries in
segment, s and z
New utilities
(but beware for some of these, as their syntax/interface
might change in the next release):
- utilities zoom_image, create_projdata_template, generate_image,
list_ROI_values
- list mode (re)binner: go from list mode data to projection data (aka
sinograms).
Installation procedure changes
- completely revised the makefiles. Please read the User's guide (or the mailing list).
Some important changes:
- the optional file STIR/local/Makefile_common should now be called
STIR/local/config.mk. You can probably just rename your existing file (if you have one).
- the variable INSTALL_DIR is now renamed INSTALL_EXE_DIR (or
you might prefer to use INSTALL_PREFIX
- make install-all will put executables, libstir.a, include files, and
some associated files in various locations.
- make uninstall and make uninstall-all remove the installed files.
- The optional files local/Makefile_bblibs and local/Makefile are
now ignored. Please read the developers guide for more info on how to add your own files
to your local version of STIR.
Documentation changes
- doxygen documentation has improved
- STIR_UsersGuide has been updated
- STIR_developers_overview has been marginally updated (and some typos
removed)
recon_test_pack changes
- more checks (please please download it and run!)
What's new for developers (aside from what should be obvious
from the above):
New libraries
- listmode: preliminary version of library for reading and processing list
mode data. Support included for ECAT 966 and 962 (but this might be broken
at this point due to moving files around etc). Note that this library is
still somewhat unstable. Please feel free to discuss it on the developers
list.
- Shape: geometric shapes
- evaluation: ROIs
Code changes
- a bit more tests
- put in fixes for new compilers such as gcc 3.3 and VC 7.0
- doxygen documentation looks better because of more grouping, corrections
and of course a new version of doxygen
- some bug-fixes (mainly those mentioned on the mailing lists, but a few
more)
- merged Reconstruction*Parameters classes into Reconstruction* classes
- added convenience functions to ForwardProjectorByBin and BackProjectorByBin that handle
all projdata at once.
- BinNormalisation functions now include time-info to allow for dead-time corrections (but we
don't have any implemented in the distribution).
- ProjDataInfoCylindrical*.cxx: added more functions such as
get_all_ring_pairs_for_segment_axial_pos_num, and make sure that
the set_* functions also reset the internal lookup tables [bug fix].
- updated to boost 1.31