1 3.0alpha2 - Released 1/02/01
3 * ctsim: All functions of command-line tools are now in graphical ctsim
5 * ctsim: added generation of filter images
7 * ctsim: Added 2-image math functions (mul, add, div, sub)
9 * ctsim: Added export of imagefiles to graphic file formats
11 * ctsim: Added support for scaling imagefiles in new sizes
13 * ctsim: Added ability to save standard phantom definitions as
14 text files suitable for reading.
16 * ctsim: Add labels for image transformations and display of labels
17 when performing properties of images.
19 * processsignal.cpp: Fixed "off by one" bug in
20 shuffleNaturalToFourierOrder when n is even. Moved functions to
23 * imagefile.cpp: Added FFTW library to imagefile processing. Converted
24 image math functions to complex-valued math.
26 * phantom.cpp: Added ability to save phantom files as ASCII text.
28 3.0alpha1 - Released 12/29/00
30 * Added PlotFile class to system, used by if2 and ctsim for row
31 and column plots and comparison plots
33 * ctsim: Added image comparison statistics and image subtraction
35 * ctsim: Added plotting of rows & columns with y-axis scaling
37 * ctsim: Added row and column plot comparisons between two image
40 * ctsim: Added "Process" menu to image file display with math
41 functions. Added 2-dimensional inverse Fourier to math
42 functions. Added support for complex (real/imaginary) images.
44 * mathfuncs.cpp: Reworked statistics algorithm to share between
45 imagefile and plotfile classes.
47 * imagefile.cpp: Fixed scaling bug when rasterizing Phantom with
48 nsamples > 2. Added generic mage math functions, moved from
49 if1.cpp and if2.cpp to imagefile.cpp. Added support complex
52 * array2dfile.cpp: Added code to support complex (real/imaginary)
55 * if1: Updated to handle error conditions, such as sqrt of a
56 negative number. Converted to use new ImageFile math functions.
58 * if2: Updated to output plot files and use new ImageFile class
61 * if1: Updated to use new ImageFile class math functions
63 * ezplot: Reworked to better store colors/linestyles/symbols with
64 individual curves. Improved display of labels and ticks. Updated
65 to use POL class member variable. Updated to more C++ conventions.
67 * pol: converted to C++ class. Extracted HashTable to separate
70 * sgp: Added linestyle settings
73 First Microsoft Windows GUI version
74 Modifications for Microsoft Visual C++ compilation.
75 Improved pjinfo to output binary headers and view data, useful
76 when manually compiling phantoms that vary during projection
77 process. Thanks to Ian Kay for idea and code submission.
78 Improved sorting to find median in ImageFile::statistics
79 Fixed core-dump bug in Array2dFile::labelsCopy() function (Ian Kay)
80 Changed reconstruction dialog to fix onto smaller screens
81 Fixed display of plotting in Projection views
82 Improved animation displays for Projections and Reconstructions
83 Changed code to explicitly use std:: namespace rather than
84 "namespace using std" statements
85 Fixed reconstruction scaling bug introduced in 2.0.6
86 Renamed if2img to ifexport, if-1 to if1, if-2 to if2
89 Fixed minor compilation problem with procsignal.h
91 Fixed bug when simulating projections and Trace == CONSOLE
92 Fixed scaling bug when performing redundant rotations around object
95 Improved compilation on RedHat 7
96 Changed some of ANSI C header files to C++ header files
97 Removed README.RedHat7
100 Added documentation for --geometry setting
101 Added README.RedHat7 document
104 Fixed bug in generation of binary PGM files
105 Fixed MPI compilation bug in phm2pj.cpp
106 Inverted y-axis output for pj2if (bug alert from Ian Kay)
109 Additions to man pages (Ian Kay)
110 Fix problem with reading of ASCII phantom files (Ian Kay)
113 Fixed syntax error in fftw configuration
114 Slight modifications to support gcc v2.9.6
117 Version 2.0.0 released!
118 ctsim: Added Window menu to Main frame
119 ctsim: Disabled not support reconstruction method
120 Fixed obscure bug in sys_error
121 Fixed compilation in mingw environment not present
122 Fixed compilation in non-graphical environments
125 ctsim: Added animation of reconstruction
126 ctsim: Added saving of dialog parameters for Projection & Reconstruction
127 ctsim: Added progress dialog for rasterization of phantom
128 ctsim: used setpriority to set lower priority
129 ctsim: fixed pReconstruct not being deleted causing scaling problem
130 ctsim: fixed projection animation dialog buttons
133 ctsim: Added projection graph to animation of projection collection
134 ctsim: Added single stepping to projection collection animation
135 ctsim: improved File/Properties display for projection files
136 ctsim: Added progress dialog for reconstructions
137 ctsim: Added file labels for projection and reconstruction images
138 ctsim: Made File/Properties bring up modal dialogs
139 Added reconstruction for Equilinear and Equiangular geometries
140 Changed theta to be -PI/2 to make compliant with Kak-Slaney formulas
141 Separated reconstruction into Reconstructor class
142 Fixed center of detector adjustment for even number of detectors
143 Added --enable-static to generate statically linked programs
146 ctsim: Added animation of projection collection processs
147 ctsim: Added Auto Scaling for image windows
148 ctsim: Change menus from "windowing" to "display scaling"
149 Added FieldOfView and FocalLength ratio parameters to projection collection
150 Added FocalLength & FieldOfView fields to projection data files
151 Added Projection collection for Equilinear and Equiangular geometries
152 Changed name of Rowland Phantom to correct name of Shepp-Logan
153 Fixed bug in backprojection selection
156 Added RCS Id strings to executable files
157 Added RPM Spec file for RPM package creation
158 Added loading of ASCII phanthom definitions from files
159 Fixed compilation for non-SGP architectures
160 Decomposed SignalFilter class into ProcessSignal and SignalFilter classes
161 Added Filter-Generation option to reconstruction to allow direct or
162 inverse_fourier construction of filters
163 Added median to statistics and to auto-windowing
166 Added line color support to SGP
170 Finished support for dmallocxx library
171 Fixed bug in SignalFilter::convertFilterMethodNameToID()
172 Rewrote SGP & EZPlot to use C++ object-oriented. SGP can now write to
173 G2 windows and well as WXWindows.
174 ctsim program: "Create Phantom" now shows phantom object
175 Fixed row-plot bug in if-2
176 Reworked EZPlot's multiple plot operation
179 ctsim program: improved initial size and scroll area for image
181 ctsim program: added rasterization parameters, projections parameters,
182 and reconstruction parameters dialogs
183 Moved char[] static definition from header files to c++ files
184 Completely reorganized option processing in classes to improve
185 expandability and to assist ctsim graphical user interface.
188 ctsim program: Added dialog to set minimum/maximum display levels
189 Started ctsim.tex document file
192 Fixed compiler warnings at -Wall level
193 Began work on CTSim program to be graphical front-end of all functions
194 Moved current src/*.cpp to tools/*.cpp
195 Made CTSim graphical front-end's home to be src/
198 Added highly optimized backprojection method idiff3
199 Moved comparative stats to if-2 program from ifinfo
200 Fixed image display in if2img using G2 library
201 Added column-plot and row-plot options to if-2
202 Added autoselection of analytic/calculated spatial responses to SignalFilter
203 Added frequency-based preinterpolation to SignalFilter and idiff3
204 backprojection method. Currently, this technique is still under
205 development and debugging
206 Moved graphic file writing to ImageFile class from if2img program
209 Cleaned up SignalFilter class
210 Added zeropad option to pjrec
211 Added zeropad options to html and cgi files
212 Added fourier_table and rfttw filter methods
213 Added FFTW routines to use real/half-complex transformations
216 Updated trace level processing
217 Added trace level to SignalFilter
218 Fixed magnitude vs. real output bug in FFT/Fourier filter
221 Fixed const issue with ImageFileArray
222 Fixed Array2dFile::labelsCopy()
223 Added copy constructor and assignment for Array2dFileLabel class
224 Added Timer to if-2.cpp and ifinfo.cpp
225 Added beginning of frequency-based (DFT & FFT) filter to SignalFilter
226 Added option processing for filter-method for pjrec to choose
227 between convolution, dft, & fft filtering
228 Fixed format string for EZPlot so axis labels now print
229 Added support for FFTW library
232 Rewrote Array2dFile class to be non-templated
233 Rewrote Array2dFile class to make reads and writes atomic. No disk files are kept open.
234 Rewrote Array2dFileLabel class to make members private, added access routines
235 Removed timedate.cpp in favor of standard C library time/date functions
236 Renamed ctrec to pjrec, sample-ctrec.sh to sample-ctsim
237 Added signature tag and creation date/time to projection files
240 Standardized string option processing by classes. All classes use character strings
241 to select options rather than numeric constants. Added fail() and failMessage()
242 methods to verify that objects are created correctly by character strings.
243 Hid C++ assignment and copy constructors in classes that should not have assignment/copy
244 Rewrote ImageFile class
245 Started support for dmallocxx library, not finished
246 Added G.T. Herman image comparision statistics to ifinfo (see imagefile.cpp)
247 Updated ifinfo to show comparative statistics
248 Added printLabels() to Array2dFile class
249 Added printStatistics() to ImageFile class
252 Moved conversion filter name/id to Filter class
253 Moved conversion backprojection name/id to Backproj class
254 Added MPI broadcasting of strings
257 Merged proj_reconstr into class Projections
258 Used auto_ptr in Projections::reconstruct to make sure destructor is always called
259 Code cleanup in projections.cpp
260 Moved conversion of phantom names/id to Phantom class
263 Converted projection files to C++ library with frnetorderstream
264 Converted image files to C++ library with frnetorderstream
265 Converted filter and convolution to object-oriented code
266 Changed default image file to float from double -- Changable in imagefile.h
267 Optimized image file writing on little-endian architectures
268 Updated README and INSTALL
271 Reorganized source files
272 MPI bug fixed to phm2pj.cpp
275 Reorganized include files
276 Fixed const pointers in strfuncs
279 Renamed directories, moved source files, combined source files
280 to change from 6 libraries to 3 libraries (libctsim, libctsupport,
284 Skip versions to make version 2.0 the first fully C++ version
285 Renamed Raysums to Projections throughout files
286 Renamed Detector to Scanner
287 Converted Scanner and Projecions to full object-oriented
290 Converted Phantom and PhantomElements to Object-Oriented
291 Converted Detector to Object-Oriented
294 Improved Integer backprojection method
295 Fixed nearest neighbor to be truly nearest neighbor
296 Made linear interpolation more integer arithmetic -> speed improvement
297 Finished converting all C files to C++
298 Converted all use of malloc/free to C++ new/delete
299 Began object-oriented conversion of Phantom and Projection structures
302 Converted MPI data structures to C++ object
303 Made ImageFile directly inherit from Array2dFile
306 First C++ conversions
307 Portable IF (image file) format implemented with objects (SDF removed)
308 - Now all data files are cross-platform compatible
309 Converted from MPI to MPI++
310 Converted backprojection to object-oriented
311 Removed MTX from libkmath as no longer need -- replaced with C++ matrices
314 Simpilifed endian handling
317 Added support for 64-bit (IA64) CPU
318 Removed broken B-spline interpolation
319 Added support for cygwin platform under Windows 2000
320 Added support for 16-bit PNG graphics
323 Added compile-time configuration of endian order
326 Modified the raysum file format to be platform independent
329 Added Microsoft VC compatibility
330 Cleaned up compilation warnings in libgraph
333 Continued conversion to ANSI C
334 Removed old CRT routines
337 Renamed pictures to phantoms, objects to phantom elements
338 Continued code cleanup
341 More code cleanup with reorganizing libraries
342 Added --log and --exp to sdf-1
343 Allowed negative numbers for window levels in CGI interface
346 Continued code cleanup
350 Better documented, coded raysum in-memory on on-disk options
353 Cleaned out library that wasn't being used by CTSim
354 Modified ctsim.cgi to read in configuration file ctsim.conf
357 First open source distribution for GNU/Linux
360 Converted to GNU/Linux
361 added MPI support via LAM library
364 Developed under MS-DOS and IBM EGA graphics