3 * ctsim: Online help added as well as HTML help
5 * ctsim: Added icons to Frames on Windows versions
7 * pjinfo: Fixed bug when doing --dump and not specifing --endview
9 * ctsimtext-lam: Changes for first version to compile under lam
11 3.0.0alpha5 - Released 1/12/00
13 * ctsim: Added EZPlotDialog, used by debugging plots in
16 * ctsimtext: Fixed bugs for MSVC and with empty input lines. Fixed
17 bug in parsing command-line parameters.
19 * views.cpp: Fixed bug in copying of labels from images to
22 * syserror.cpp: fixed reporting for fatal errors
24 * projections.cpp: fixed MSVC failure with std:: namespace
26 * procsignal.cpp: fixed bug in equiangular reconstructions
27 for frequency/inverse-fourier filtering
29 3.0.0alpha4 - Released 1/09/01
31 * ctsim: Added reset to full-intensity scale menu item
33 * ctsim: Add conversion of projections to polar plot [Thanks to
34 Ian Kay for reference and math hints in polar bilinear scaling]
36 * ctsim: improve bilinear scaling of image size [Thanks to Ian Kay
39 * ctsim: imagefile labels are now copied to plotfiles
41 * ctsim: Added more analyze menuitems
43 * ctsimtext: First version. All command-line tools are now accessed
44 through this master shell. Has both command-line and interactive
47 * ctsim: Fixed initialization of min/max bug for PlotFiles
49 * ezplot: Cleaned up y-tick label placement
51 * sgp: Added better support for projection/reconstruction animation
53 3.0.0alpha3 - Released 1/02/01
55 * ctsim: Added plotting of histograms
57 * imagefile.cpp: fixed bug in generation of 16-bit PNG images
59 * ezplot.cpp: adjusted xtick label displays for better placement
61 3.0alpha2 - Released 1/02/01
63 * ctsim: All functions of command-line tools are now in graphical ctsim
65 * ctsim: added generation of filter images
67 * ctsim: Added 2-image math functions (mul, add, div, sub)
69 * ctsim: Added export of imagefiles to graphic file formats
71 * ctsim: Added support for scaling imagefiles in new sizes
73 * ctsim: Added ability to save standard phantom definitions as
74 text files suitable for reading.
76 * ctsim: Add labels for image transformations and display of labels
77 when performing properties of images.
79 * processsignal.cpp: Fixed "off by one" bug in
80 shuffleNaturalToFourierOrder when n is even. Moved functions to
83 * imagefile.cpp: Added FFTW library to imagefile processing. Converted
84 image math functions to complex-valued math.
86 * phantom.cpp: Added ability to save phantom files as ASCII text.
88 3.0alpha1 - Released 12/29/00
90 * Added PlotFile class to system, used by if2 and ctsim for row
91 and column plots and comparison plots
93 * ctsim: Added image comparison statistics and image subtraction
95 * ctsim: Added plotting of rows & columns with y-axis scaling
97 * ctsim: Added row and column plot comparisons between two image
100 * ctsim: Added "Process" menu to image file display with math
101 functions. Added 2-dimensional inverse Fourier to math
102 functions. Added support for complex (real/imaginary) images.
104 * mathfuncs.cpp: Reworked statistics algorithm to share between
105 imagefile and plotfile classes.
107 * imagefile.cpp: Fixed scaling bug when rasterizing Phantom with
108 nsamples > 2. Added generic mage math functions, moved from
109 if1.cpp and if2.cpp to imagefile.cpp. Added support complex
112 * array2dfile.cpp: Added code to support complex (real/imaginary)
115 * if1: Updated to handle error conditions, such as sqrt of a
116 negative number. Converted to use new ImageFile math functions.
118 * if2: Updated to output plot files and use new ImageFile class
121 * if1: Updated to use new ImageFile class math functions
123 * ezplot: Reworked to better store colors/linestyles/symbols with
124 individual curves. Improved display of labels and ticks. Updated
125 to use POL class member variable. Updated to more C++ conventions.
127 * pol: converted to C++ class. Extracted HashTable to separate
130 * sgp: Added linestyle settings
133 First Microsoft Windows GUI version
134 Modifications for Microsoft Visual C++ compilation.
135 Improved pjinfo to output binary headers and view data, useful
136 when manually compiling phantoms that vary during projection
137 process. Thanks to Ian Kay for idea and code submission.
138 Improved sorting to find median in ImageFile::statistics
139 Fixed core-dump bug in Array2dFile::labelsCopy() function (Ian Kay)
140 Changed reconstruction dialog to fix onto smaller screens
141 Fixed display of plotting in Projection views
142 Improved animation displays for Projections and Reconstructions
143 Changed code to explicitly use std:: namespace rather than
144 "namespace using std" statements
145 Fixed reconstruction scaling bug introduced in 2.0.6
146 Renamed if2img to ifexport, if-1 to if1, if-2 to if2
149 Fixed minor compilation problem with procsignal.h
151 Fixed bug when simulating projections and Trace == CONSOLE
152 Fixed scaling bug when performing redundant rotations around object
155 Improved compilation on RedHat 7
156 Changed some of ANSI C header files to C++ header files
157 Removed README.RedHat7
160 Added documentation for --geometry setting
161 Added README.RedHat7 document
164 Fixed bug in generation of binary PGM files
165 Fixed MPI compilation bug in phm2pj.cpp
166 Inverted y-axis output for pj2if (bug alert from Ian Kay)
169 Additions to man pages (Ian Kay)
170 Fix problem with reading of ASCII phantom files (Ian Kay)
173 Fixed syntax error in fftw configuration
174 Slight modifications to support gcc v2.9.6
177 Version 2.0.0 released!
178 ctsim: Added Window menu to Main frame
179 ctsim: Disabled not support reconstruction method
180 Fixed obscure bug in sys_error
181 Fixed compilation in mingw environment not present
182 Fixed compilation in non-graphical environments
185 ctsim: Added animation of reconstruction
186 ctsim: Added saving of dialog parameters for Projection & Reconstruction
187 ctsim: Added progress dialog for rasterization of phantom
188 ctsim: used setpriority to set lower priority
189 ctsim: fixed pReconstruct not being deleted causing scaling problem
190 ctsim: fixed projection animation dialog buttons
193 ctsim: Added projection graph to animation of projection collection
194 ctsim: Added single stepping to projection collection animation
195 ctsim: improved File/Properties display for projection files
196 ctsim: Added progress dialog for reconstructions
197 ctsim: Added file labels for projection and reconstruction images
198 ctsim: Made File/Properties bring up modal dialogs
199 Added reconstruction for Equilinear and Equiangular geometries
200 Changed theta to be -PI/2 to make compliant with Kak-Slaney formulas
201 Separated reconstruction into Reconstructor class
202 Fixed center of detector adjustment for even number of detectors
203 Added --enable-static to generate statically linked programs
206 ctsim: Added animation of projection collection processs
207 ctsim: Added Auto Scaling for image windows
208 ctsim: Change menus from "windowing" to "display scaling"
209 Added FieldOfView and FocalLength ratio parameters to projection collection
210 Added FocalLength & FieldOfView fields to projection data files
211 Added Projection collection for Equilinear and Equiangular geometries
212 Changed name of Rowland Phantom to correct name of Shepp-Logan
213 Fixed bug in backprojection selection
216 Added RCS Id strings to executable files
217 Added RPM Spec file for RPM package creation
218 Added loading of ASCII phanthom definitions from files
219 Fixed compilation for non-SGP architectures
220 Decomposed SignalFilter class into ProcessSignal and SignalFilter classes
221 Added Filter-Generation option to reconstruction to allow direct or
222 inverse_fourier construction of filters
223 Added median to statistics and to auto-windowing
226 Added line color support to SGP
230 Finished support for dmallocxx library
231 Fixed bug in SignalFilter::convertFilterMethodNameToID()
232 Rewrote SGP & EZPlot to use C++ object-oriented. SGP can now write to
233 G2 windows and well as WXWindows.
234 ctsim program: "Create Phantom" now shows phantom object
235 Fixed row-plot bug in if-2
236 Reworked EZPlot's multiple plot operation
239 ctsim program: improved initial size and scroll area for image
241 ctsim program: added rasterization parameters, projections parameters,
242 and reconstruction parameters dialogs
243 Moved char[] static definition from header files to c++ files
244 Completely reorganized option processing in classes to improve
245 expandability and to assist ctsim graphical user interface.
248 ctsim program: Added dialog to set minimum/maximum display levels
249 Started ctsim.tex document file
252 Fixed compiler warnings at -Wall level
253 Began work on CTSim program to be graphical front-end of all functions
254 Moved current src/*.cpp to tools/*.cpp
255 Made CTSim graphical front-end's home to be src/
258 Added highly optimized backprojection method idiff3
259 Moved comparative stats to if-2 program from ifinfo
260 Fixed image display in if2img using G2 library
261 Added column-plot and row-plot options to if-2
262 Added autoselection of analytic/calculated spatial responses to SignalFilter
263 Added frequency-based preinterpolation to SignalFilter and idiff3
264 backprojection method. Currently, this technique is still under
265 development and debugging
266 Moved graphic file writing to ImageFile class from if2img program
269 Cleaned up SignalFilter class
270 Added zeropad option to pjrec
271 Added zeropad options to html and cgi files
272 Added fourier_table and rfttw filter methods
273 Added FFTW routines to use real/half-complex transformations
276 Updated trace level processing
277 Added trace level to SignalFilter
278 Fixed magnitude vs. real output bug in FFT/Fourier filter
281 Fixed const issue with ImageFileArray
282 Fixed Array2dFile::labelsCopy()
283 Added copy constructor and assignment for Array2dFileLabel class
284 Added Timer to if-2.cpp and ifinfo.cpp
285 Added beginning of frequency-based (DFT & FFT) filter to SignalFilter
286 Added option processing for filter-method for pjrec to choose
287 between convolution, dft, & fft filtering
288 Fixed format string for EZPlot so axis labels now print
289 Added support for FFTW library
292 Rewrote Array2dFile class to be non-templated
293 Rewrote Array2dFile class to make reads and writes atomic. No disk files are kept open.
294 Rewrote Array2dFileLabel class to make members private, added access routines
295 Removed timedate.cpp in favor of standard C library time/date functions
296 Renamed ctrec to pjrec, sample-ctrec.sh to sample-ctsim
297 Added signature tag and creation date/time to projection files
300 Standardized string option processing by classes. All classes use character strings
301 to select options rather than numeric constants. Added fail() and failMessage()
302 methods to verify that objects are created correctly by character strings.
303 Hid C++ assignment and copy constructors in classes that should not have assignment/copy
304 Rewrote ImageFile class
305 Started support for dmallocxx library, not finished
306 Added G.T. Herman image comparision statistics to ifinfo (see imagefile.cpp)
307 Updated ifinfo to show comparative statistics
308 Added printLabels() to Array2dFile class
309 Added printStatistics() to ImageFile class
312 Moved conversion filter name/id to Filter class
313 Moved conversion backprojection name/id to Backproj class
314 Added MPI broadcasting of strings
317 Merged proj_reconstr into class Projections
318 Used auto_ptr in Projections::reconstruct to make sure destructor is always called
319 Code cleanup in projections.cpp
320 Moved conversion of phantom names/id to Phantom class
323 Converted projection files to C++ library with frnetorderstream
324 Converted image files to C++ library with frnetorderstream
325 Converted filter and convolution to object-oriented code
326 Changed default image file to float from double -- Changable in imagefile.h
327 Optimized image file writing on little-endian architectures
328 Updated README and INSTALL
331 Reorganized source files
332 MPI bug fixed to phm2pj.cpp
335 Reorganized include files
336 Fixed const pointers in strfuncs
339 Renamed directories, moved source files, combined source files
340 to change from 6 libraries to 3 libraries (libctsim, libctsupport,
344 Skip versions to make version 2.0 the first fully C++ version
345 Renamed Raysums to Projections throughout files
346 Renamed Detector to Scanner
347 Converted Scanner and Projecions to full object-oriented
350 Converted Phantom and PhantomElements to Object-Oriented
351 Converted Detector to Object-Oriented
354 Improved Integer backprojection method
355 Fixed nearest neighbor to be truly nearest neighbor
356 Made linear interpolation more integer arithmetic -> speed improvement
357 Finished converting all C files to C++
358 Converted all use of malloc/free to C++ new/delete
359 Began object-oriented conversion of Phantom and Projection structures
362 Converted MPI data structures to C++ object
363 Made ImageFile directly inherit from Array2dFile
366 First C++ conversions
367 Portable IF (image file) format implemented with objects (SDF removed)
368 - Now all data files are cross-platform compatible
369 Converted from MPI to MPI++
370 Converted backprojection to object-oriented
371 Removed MTX from libkmath as no longer need -- replaced with C++ matrices
374 Simpilifed endian handling
377 Added support for 64-bit (IA64) CPU
378 Removed broken B-spline interpolation
379 Added support for cygwin platform under Windows 2000
380 Added support for 16-bit PNG graphics
383 Added compile-time configuration of endian order
386 Modified the raysum file format to be platform independent
389 Added Microsoft VC compatibility
390 Cleaned up compilation warnings in libgraph
393 Continued conversion to ANSI C
394 Removed old CRT routines
397 Renamed pictures to phantoms, objects to phantom elements
398 Continued code cleanup
401 More code cleanup with reorganizing libraries
402 Added --log and --exp to sdf-1
403 Allowed negative numbers for window levels in CGI interface
406 Continued code cleanup
410 Better documented, coded raysum in-memory on on-disk options
413 Cleaned out library that wasn't being used by CTSim
414 Modified ctsim.cgi to read in configuration file ctsim.conf
417 First open source distribution for GNU/Linux
420 Converted to GNU/Linux
421 added MPI support via LAM library
424 Developed under MS-DOS and IBM EGA graphics