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