1 3.0.0beta2 - Release 2//01
3 * ctsim: Massive update/fix to online help and print manual.
5 * ctsim: Reformated all dialog boxes, much nicer now.
7 * global: Added Hanning filter.
9 * global: Improved default parameters to that all defaults give
12 3.0.0beta1 - Released 2/11/01
14 * ctsim: Added most-recently-used files to File menu with
15 registry storage between executions.
17 * ctsim: Hides arcane features unless enabled by Preferences dialog
19 * ctsim: Added MDI interface for Windows version and made it default for Windows.
21 * ctsim: Added 3-D wireframe view of images (uses OpenGL)
23 * ctsim: Added graphical About box
25 * ctsim: Escape key now removes cursor lines from image file view
27 * ctsim: Added Revert to ImageFile menu
29 * ctsim: Added accelerator (hotkeys) to frames
31 * ctsim: Online help added!
33 * backprojector: Added cubic interpolation
35 * ctsim: Added icons to Frames on X-Window and MS Windows versions
37 * ctsim: Fixed tick-label placement for plots on projection and
38 reconstruction dialogs.
40 * timer.h: Add use of _ftime when compiling on MSVC
42 * global: Projection files are not compatible with previous version
43 due to new scanner definitions.
45 * global: deleted concept of field-of-view and added
46 view ratio and scan ratio concepts.
48 * ctsim: Fixed crash on shutdown bug
50 * pjinfo: Fixed bug when doing --dump and not specifing --endview
52 * phm2pj: Fixed MPI bug with broadcasting of variables
54 * ctsimtext-lam: Changes for first version to compile under lam
57 3.0.0alpha5 - Released 1/12/00
59 * ctsim: Added EZPlotDialog, used by debugging plots in
62 * ctsimtext: Fixed bugs for MSVC and with empty input lines. Fixed
63 bug in parsing command-line parameters.
65 * views.cpp: Fixed bug in copying of labels from images to
68 * syserror.cpp: fixed reporting for fatal errors
70 * projections.cpp: fixed MSVC failure with std:: namespace
72 * procsignal.cpp: fixed bug in equiangular reconstructions
73 for frequency/inverse-fourier filtering
75 3.0.0alpha4 - Released 1/09/01
77 * ctsim: Added reset to full-intensity scale menu item
79 * ctsim: Add conversion of projections to polar plot [Thanks to
80 Ian Kay for reference and math hints in polar bilinear scaling]
82 * ctsim: improve bilinear scaling of image size [Thanks to Ian Kay
85 * ctsim: imagefile labels are now copied to plotfiles
87 * ctsim: Added more analyze menuitems
89 * ctsimtext: First version. All command-line tools are now accessed
90 through this master shell. Has both command-line and interactive
93 * ctsim: Fixed initialization of min/max bug for PlotFiles
95 * ezplot: Cleaned up y-tick label placement
97 * sgp: Added better support for projection/reconstruction animation
99 3.0.0alpha3 - Released 1/02/01
101 * ctsim: Added plotting of histograms
103 * imagefile.cpp: fixed bug in generation of 16-bit PNG images
105 * ezplot.cpp: adjusted xtick label displays for better placement
107 3.0alpha2 - Released 1/02/01
109 * ctsim: All functions of command-line tools are now in graphical ctsim
111 * ctsim: added generation of filter images
113 * ctsim: Added 2-image math functions (mul, add, div, sub)
115 * ctsim: Added export of imagefiles to graphic file formats
117 * ctsim: Added support for scaling imagefiles in new sizes
119 * ctsim: Added ability to save standard phantom definitions as
120 text files suitable for reading.
122 * ctsim: Add labels for image transformations and display of labels
123 when performing properties of images.
125 * processsignal.cpp: Fixed "off by one" bug in
126 shuffleNaturalToFourierOrder when n is even. Moved functions to
129 * imagefile.cpp: Added FFTW library to imagefile processing. Converted
130 image math functions to complex-valued math.
132 * phantom.cpp: Added ability to save phantom files as ASCII text.
134 3.0alpha1 - Released 12/29/00
136 * Added PlotFile class to system, used by if2 and ctsim for row
137 and column plots and comparison plots
139 * ctsim: Added image comparison statistics and image subtraction
141 * ctsim: Added plotting of rows & columns with y-axis scaling
143 * ctsim: Added row and column plot comparisons between two image
146 * ctsim: Added "Process" menu to image file display with math
147 functions. Added 2-dimensional inverse Fourier to math
148 functions. Added support for complex (real/imaginary) images.
150 * mathfuncs.cpp: Reworked statistics algorithm to share between
151 imagefile and plotfile classes.
153 * imagefile.cpp: Fixed scaling bug when rasterizing Phantom with
154 nsamples > 2. Added generic mage math functions, moved from
155 if1.cpp and if2.cpp to imagefile.cpp. Added support complex
158 * array2dfile.cpp: Added code to support complex (real/imaginary)
161 * if1: Updated to handle error conditions, such as sqrt of a
162 negative number. Converted to use new ImageFile math functions.
164 * if2: Updated to output plot files and use new ImageFile class
167 * if1: Updated to use new ImageFile class math functions
169 * ezplot: Reworked to better store colors/linestyles/symbols with
170 individual curves. Improved display of labels and ticks. Updated
171 to use POL class member variable. Updated to more C++ conventions.
173 * pol: converted to C++ class. Extracted HashTable to separate
176 * sgp: Added linestyle settings
179 First Microsoft Windows GUI version
180 Modifications for Microsoft Visual C++ compilation.
181 Improved pjinfo to output binary headers and view data, useful
182 when manually compiling phantoms that vary during projection
183 process. Thanks to Ian Kay for idea and code submission.
184 Improved sorting to find median in ImageFile::statistics
185 Fixed core-dump bug in Array2dFile::labelsCopy() function (Ian Kay)
186 Changed reconstruction dialog to fix onto smaller screens
187 Fixed display of plotting in Projection views
188 Improved animation displays for Projections and Reconstructions
189 Changed code to explicitly use std:: namespace rather than
190 "namespace using std" statements
191 Fixed reconstruction scaling bug introduced in 2.0.6
192 Renamed if2img to ifexport, if-1 to if1, if-2 to if2
195 Fixed minor compilation problem with procsignal.h
197 Fixed bug when simulating projections and Trace == CONSOLE
198 Fixed scaling bug when performing redundant rotations around object
201 Improved compilation on RedHat 7
202 Changed some of ANSI C header files to C++ header files
203 Removed README.RedHat7
206 Added documentation for --geometry setting
207 Added README.RedHat7 document
210 Fixed bug in generation of binary PGM files
211 Fixed MPI compilation bug in phm2pj.cpp
212 Inverted y-axis output for pj2if (bug alert from Ian Kay)
215 Additions to man pages (Ian Kay)
216 Fix problem with reading of ASCII phantom files (Ian Kay)
219 Fixed syntax error in fftw configuration
220 Slight modifications to support gcc v2.9.6
223 Version 2.0.0 released!
224 ctsim: Added Window menu to Main frame
225 ctsim: Disabled not support reconstruction method
226 Fixed obscure bug in sys_error
227 Fixed compilation in mingw environment not present
228 Fixed compilation in non-graphical environments
231 ctsim: Added animation of reconstruction
232 ctsim: Added saving of dialog parameters for Projection & Reconstruction
233 ctsim: Added progress dialog for rasterization of phantom
234 ctsim: used setpriority to set lower priority
235 ctsim: fixed pReconstruct not being deleted causing scaling problem
236 ctsim: fixed projection animation dialog buttons
239 ctsim: Added projection graph to animation of projection collection
240 ctsim: Added single stepping to projection collection animation
241 ctsim: improved File/Properties display for projection files
242 ctsim: Added progress dialog for reconstructions
243 ctsim: Added file labels for projection and reconstruction images
244 ctsim: Made File/Properties bring up modal dialogs
245 Added reconstruction for Equilinear and Equiangular geometries
246 Changed theta to be -PI/2 to make compliant with Kak-Slaney formulas
247 Separated reconstruction into Reconstructor class
248 Fixed center of detector adjustment for even number of detectors
249 Added --enable-static to generate statically linked programs
252 ctsim: Added animation of projection collection processs
253 ctsim: Added Auto Scaling for image windows
254 ctsim: Change menus from "windowing" to "display scaling"
255 Added FieldOfView and FocalLength ratio parameters to projection collection
256 Added FocalLength & FieldOfView fields to projection data files
257 Added Projection collection for Equilinear and Equiangular geometries
258 Changed name of Rowland Phantom to correct name of Shepp-Logan
259 Fixed bug in backprojection selection
262 Added RCS Id strings to executable files
263 Added RPM Spec file for RPM package creation
264 Added loading of ASCII phanthom definitions from files
265 Fixed compilation for non-SGP architectures
266 Decomposed SignalFilter class into ProcessSignal and SignalFilter classes
267 Added Filter-Generation option to reconstruction to allow direct or
268 inverse_fourier construction of filters
269 Added median to statistics and to auto-windowing
272 Added line color support to SGP
276 Finished support for dmallocxx library
277 Fixed bug in SignalFilter::convertFilterMethodNameToID()
278 Rewrote SGP & EZPlot to use C++ object-oriented. SGP can now write to
279 G2 windows and well as WXWindows.
280 ctsim program: "Create Phantom" now shows phantom object
281 Fixed row-plot bug in if-2
282 Reworked EZPlot's multiple plot operation
285 ctsim program: improved initial size and scroll area for image
287 ctsim program: added rasterization parameters, projections parameters,
288 and reconstruction parameters dialogs
289 Moved char[] static definition from header files to c++ files
290 Completely reorganized option processing in classes to improve
291 expandability and to assist ctsim graphical user interface.
294 ctsim program: Added dialog to set minimum/maximum display levels
295 Started ctsim.tex document file
298 Fixed compiler warnings at -Wall level
299 Began work on CTSim program to be graphical front-end of all functions
300 Moved current src/*.cpp to tools/*.cpp
301 Made CTSim graphical front-end's home to be src/
304 Added highly optimized backprojection method idiff3
305 Moved comparative stats to if-2 program from ifinfo
306 Fixed image display in if2img using G2 library
307 Added column-plot and row-plot options to if-2
308 Added autoselection of analytic/calculated spatial responses to SignalFilter
309 Added frequency-based preinterpolation to SignalFilter and idiff3
310 backprojection method. Currently, this technique is still under
311 development and debugging
312 Moved graphic file writing to ImageFile class from if2img program
315 Cleaned up SignalFilter class
316 Added zeropad option to pjrec
317 Added zeropad options to html and cgi files
318 Added fourier_table and rfttw filter methods
319 Added FFTW routines to use real/half-complex transformations
322 Updated trace level processing
323 Added trace level to SignalFilter
324 Fixed magnitude vs. real output bug in FFT/Fourier filter
327 Fixed const issue with ImageFileArray
328 Fixed Array2dFile::labelsCopy()
329 Added copy constructor and assignment for Array2dFileLabel class
330 Added Timer to if-2.cpp and ifinfo.cpp
331 Added beginning of frequency-based (DFT & FFT) filter to SignalFilter
332 Added option processing for filter-method for pjrec to choose
333 between convolution, dft, & fft filtering
334 Fixed format string for EZPlot so axis labels now print
335 Added support for FFTW library
338 Rewrote Array2dFile class to be non-templated
339 Rewrote Array2dFile class to make reads and writes atomic. No disk files are kept open.
340 Rewrote Array2dFileLabel class to make members private, added access routines
341 Removed timedate.cpp in favor of standard C library time/date functions
342 Renamed ctrec to pjrec, sample-ctrec.sh to sample-ctsim
343 Added signature tag and creation date/time to projection files
346 Standardized string option processing by classes. All classes use character strings
347 to select options rather than numeric constants. Added fail() and failMessage()
348 methods to verify that objects are created correctly by character strings.
349 Hid C++ assignment and copy constructors in classes that should not have assignment/copy
350 Rewrote ImageFile class
351 Started support for dmallocxx library, not finished
352 Added G.T. Herman image comparision statistics to ifinfo (see imagefile.cpp)
353 Updated ifinfo to show comparative statistics
354 Added printLabels() to Array2dFile class
355 Added printStatistics() to ImageFile class
358 Moved conversion filter name/id to Filter class
359 Moved conversion backprojection name/id to Backproj class
360 Added MPI broadcasting of strings
363 Merged proj_reconstr into class Projections
364 Used auto_ptr in Projections::reconstruct to make sure destructor is always called
365 Code cleanup in projections.cpp
366 Moved conversion of phantom names/id to Phantom class
369 Converted projection files to C++ library with frnetorderstream
370 Converted image files to C++ library with frnetorderstream
371 Converted filter and convolution to object-oriented code
372 Changed default image file to float from double -- Changable in imagefile.h
373 Optimized image file writing on little-endian architectures
374 Updated README and INSTALL
377 Reorganized source files
378 MPI bug fixed to phm2pj.cpp
381 Reorganized include files
382 Fixed const pointers in strfuncs
385 Renamed directories, moved source files, combined source files
386 to change from 6 libraries to 3 libraries (libctsim, libctsupport,
390 Skip versions to make version 2.0 the first fully C++ version
391 Renamed Raysums to Projections throughout files
392 Renamed Detector to Scanner
393 Converted Scanner and Projecions to full object-oriented
396 Converted Phantom and PhantomElements to Object-Oriented
397 Converted Detector to Object-Oriented
400 Improved Integer backprojection method
401 Fixed nearest neighbor to be truly nearest neighbor
402 Made linear interpolation more integer arithmetic -> speed improvement
403 Finished converting all C files to C++
404 Converted all use of malloc/free to C++ new/delete
405 Began object-oriented conversion of Phantom and Projection structures
408 Converted MPI data structures to C++ object
409 Made ImageFile directly inherit from Array2dFile
412 First C++ conversions
413 Portable IF (image file) format implemented with objects (SDF removed)
414 - Now all data files are cross-platform compatible
415 Converted from MPI to MPI++
416 Converted backprojection to object-oriented
417 Removed MTX from libkmath as no longer need -- replaced with C++ matrices
420 Simpilifed endian handling
423 Added support for 64-bit (IA64) CPU
424 Removed broken B-spline interpolation
425 Added support for cygwin platform under Windows 2000
426 Added support for 16-bit PNG graphics
429 Added compile-time configuration of endian order
432 Modified the raysum file format to be platform independent
435 Added Microsoft VC compatibility
436 Cleaned up compilation warnings in libgraph
439 Continued conversion to ANSI C
440 Removed old CRT routines
443 Renamed pictures to phantoms, objects to phantom elements
444 Continued code cleanup
447 More code cleanup with reorganizing libraries
448 Added --log and --exp to sdf-1
449 Allowed negative numbers for window levels in CGI interface
452 Continued code cleanup
456 Better documented, coded raysum in-memory on on-disk options
459 Cleaned out library that wasn't being used by CTSim
460 Modified ctsim.cgi to read in configuration file ctsim.conf
463 First open source distribution for GNU/Linux
466 Converted to GNU/Linux
467 added MPI support via LAM library
470 Developed under MS-DOS and IBM EGA graphics