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