1 2.5.1 - Released 12/30/00
3 12/18/00 Added plotfile class
6 First Microsoft Windows GUI version
7 Modifications for Microsoft Visual C++ compilation.
8 Improved pjinfo to output binary headers and view data, useful
9 when manually compiling phantoms that vary during projection
10 process. Thanks to Ian Kay for idea and code submission.
11 Improved sorting to find median in ImageFile::statistics
12 Fixed core-dump bug in Array2dFile::labelsCopy() function (Ian Kay)
13 Changed reconstruction dialog to fix onto smaller screens
14 Fixed display of plotting in Projection views
15 Improved animation displays for Projections and Reconstructions
16 Changed code to explicitly use std:: namespace rather than
17 "namespace using std" statements
18 Fixed reconstruction scaling bug introduced in 2.0.6
19 Renamed if2img to ifexport, if-1 to if1, if-2 to if2
22 Fixed minor compilation problem with procsignal.h
24 Fixed bug when simulating projections and Trace == CONSOLE
25 Fixed scaling bug when performing redundant rotations around object
28 Improved compilation on RedHat 7
29 Changed some of ANSI C header files to C++ header files
30 Removed README.RedHat7
33 Added documentation for --geometry setting
34 Added README.RedHat7 document
37 Fixed bug in generation of binary PGM files
38 Fixed MPI compilation bug in phm2pj.cpp
39 Inverted y-axis output for pj2if (bug alert from Ian Kay)
42 Additions to man pages (Ian Kay)
43 Fix problem with reading of ASCII phantom files (Ian Kay)
46 Fixed syntax error in fftw configuration
47 Slight modifications to support gcc v2.9.6
50 Version 2.0.0 released!
51 ctsim: Added Window menu to Main frame
52 ctsim: Disabled not support reconstruction method
53 Fixed obscure bug in sys_error
54 Fixed compilation in mingw environment not present
55 Fixed compilation in non-graphical environments
58 ctsim: Added animation of reconstruction
59 ctsim: Added saving of dialog parameters for Projection & Reconstruction
60 ctsim: Added progress dialog for rasterization of phantom
61 ctsim: used setpriority to set lower priority
62 ctsim: fixed pReconstruct not being deleted causing scaling problem
63 ctsim: fixed projection animation dialog buttons
66 ctsim: Added projection graph to animation of projection collection
67 ctsim: Added single stepping to projection collection animation
68 ctsim: improved File/Properties display for projection files
69 ctsim: Added progress dialog for reconstructions
70 ctsim: Added file labels for projection and reconstruction images
71 ctsim: Made File/Properties bring up modal dialogs
72 Added reconstruction for Equilinear and Equiangular geometries
73 Changed theta to be -PI/2 to make compliant with Kak-Slaney formulas
74 Separated reconstruction into Reconstructor class
75 Fixed center of detector adjustment for even number of detectors
76 Added --enable-static to generate statically linked programs
79 ctsim: Added animation of projection collection processs
80 ctsim: Added Auto Scaling for image windows
81 ctsim: Change menus from "windowing" to "display scaling"
82 Added FieldOfView and FocalLength ratio parameters to projection collection
83 Added FocalLength & FieldOfView fields to projection data files
84 Added Projection collection for Equilinear and Equiangular geometries
85 Changed name of Rowland Phantom to correct name of Shepp-Logan
86 Fixed bug in backprojection selection
89 Added RCS Id strings to executable files
90 Added RPM Spec file for RPM package creation
91 Added loading of ASCII phanthom definitions from files
92 Fixed compilation for non-SGP architectures
93 Decomposed SignalFilter class into ProcessSignal and SignalFilter classes
94 Added Filter-Generation option to reconstruction to allow direct or
95 inverse_fourier construction of filters
96 Added median to statistics and to auto-windowing
99 Added line color support to SGP
103 Finished support for dmallocxx library
104 Fixed bug in SignalFilter::convertFilterMethodNameToID()
105 Rewrote SGP & EZPlot to use C++ object-oriented. SGP can now write to
106 G2 windows and well as WXWindows.
107 ctsim program: "Create Phantom" now shows phantom object
108 Fixed row-plot bug in if-2
109 Reworked EZPlot's multiple plot operation
112 ctsim program: improved initial size and scroll area for image
114 ctsim program: added rasterization parameters, projections parameters,
115 and reconstruction parameters dialogs
116 Moved char[] static definition from header files to c++ files
117 Completely reorganized option processing in classes to improve
118 expandability and to assist ctsim graphical user interface.
121 ctsim program: Added dialog to set minimum/maximum display levels
122 Started ctsim.tex document file
125 Fixed compiler warnings at -Wall level
126 Began work on CTSim program to be graphical front-end of all functions
127 Moved current src/*.cpp to tools/*.cpp
128 Made CTSim graphical front-end's home to be src/
131 Added highly optimized backprojection method idiff3
132 Moved comparative stats to if-2 program from ifinfo
133 Fixed image display in if2img using G2 library
134 Added column-plot and row-plot options to if-2
135 Added autoselection of analytic/calculated spatial responses to SignalFilter
136 Added frequency-based preinterpolation to SignalFilter and idiff3
137 backprojection method. Currently, this technique is still under
138 development and debugging
139 Moved graphic file writing to ImageFile class from if2img program
142 Cleaned up SignalFilter class
143 Added zeropad option to pjrec
144 Added zeropad options to html and cgi files
145 Added fourier_table and rfttw filter methods
146 Added FFTW routines to use real/half-complex transformations
149 Updated trace level processing
150 Added trace level to SignalFilter
151 Fixed magnitude vs. real output bug in FFT/Fourier filter
154 Fixed const issue with ImageFileArray
155 Fixed Array2dFile::labelsCopy()
156 Added copy constructor and assignment for Array2dFileLabel class
157 Added Timer to if-2.cpp and ifinfo.cpp
158 Added beginning of frequency-based (DFT & FFT) filter to SignalFilter
159 Added option processing for filter-method for pjrec to choose
160 between convolution, dft, & fft filtering
161 Fixed format string for EZPlot so axis labels now print
162 Added support for FFTW library
165 Rewrote Array2dFile class to be non-templated
166 Rewrote Array2dFile class to make reads and writes atomic. No disk files are kept open.
167 Rewrote Array2dFileLabel class to make members private, added access routines
168 Removed timedate.cpp in favor of standard C library time/date functions
169 Renamed ctrec to pjrec, sample-ctrec.sh to sample-ctsim
170 Added signature tag and creation date/time to projection files
173 Standardized string option processing by classes. All classes use character strings
174 to select options rather than numeric constants. Added fail() and failMessage()
175 methods to verify that objects are created correctly by character strings.
176 Hid C++ assignment and copy constructors in classes that should not have assignment/copy
177 Rewrote ImageFile class
178 Started support for dmallocxx library, not finished
179 Added G.T. Herman image comparision statistics to ifinfo (see imagefile.cpp)
180 Updated ifinfo to show comparative statistics
181 Added printLabels() to Array2dFile class
182 Added printStatistics() to ImageFile class
185 Moved conversion filter name/id to Filter class
186 Moved conversion backprojection name/id to Backproj class
187 Added MPI broadcasting of strings
190 Merged proj_reconstr into class Projections
191 Used auto_ptr in Projections::reconstruct to make sure destructor is always called
192 Code cleanup in projections.cpp
193 Moved conversion of phantom names/id to Phantom class
196 Converted projection files to C++ library with frnetorderstream
197 Converted image files to C++ library with frnetorderstream
198 Converted filter and convolution to object-oriented code
199 Changed default image file to float from double -- Changable in imagefile.h
200 Optimized image file writing on little-endian architectures
201 Updated README and INSTALL
204 Reorganized source files
205 MPI bug fixed to phm2pj.cpp
208 Reorganized include files
209 Fixed const pointers in strfuncs
212 Renamed directories, moved source files, combined source files
213 to change from 6 libraries to 3 libraries (libctsim, libctsupport,
217 Skip versions to make version 2.0 the first fully C++ version
218 Renamed Raysums to Projections throughout files
219 Renamed Detector to Scanner
220 Converted Scanner and Projecions to full object-oriented
223 Converted Phantom and PhantomElements to Object-Oriented
224 Converted Detector to Object-Oriented
227 Improved Integer backprojection method
228 Fixed nearest neighbor to be truly nearest neighbor
229 Made linear interpolation more integer arithmetic -> speed improvement
230 Finished converting all C files to C++
231 Converted all use of malloc/free to C++ new/delete
232 Began object-oriented conversion of Phantom and Projection structures
235 Converted MPI data structures to C++ object
236 Made ImageFile directly inherit from Array2dFile
239 First C++ conversions
240 Portable IF (image file) format implemented with objects (SDF removed)
241 - Now all data files are cross-platform compatible
242 Converted from MPI to MPI++
243 Converted backprojection to object-oriented
244 Removed MTX from libkmath as no longer need -- replaced with C++ matrices
247 Simpilifed endian handling
250 Added support for 64-bit (IA64) CPU
251 Removed broken B-spline interpolation
252 Added support for cygwin platform under Windows 2000
253 Added support for 16-bit PNG graphics
256 Added compile-time configuration of endian order
259 Modified the raysum file format to be platform independent
262 Added Microsoft VC compatibility
263 Cleaned up compilation warnings in libgraph
266 Continued conversion to ANSI C
267 Removed old CRT routines
270 Renamed pictures to phantoms, objects to phantom elements
271 Continued code cleanup
274 More code cleanup with reorganizing libraries
275 Added --log and --exp to sdf-1
276 Allowed negative numbers for window levels in CGI interface
279 Continued code cleanup
283 Better documented, coded raysum in-memory on on-disk options
286 Cleaned out library that wasn't being used by CTSim
287 Modified ctsim.cgi to read in configuration file ctsim.conf
290 First open source distribution for GNU/Linux
293 Converted to GNU/Linux
294 added MPI support via LAM library
297 Developed under MS-DOS and IBM EGA graphics