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