6 Review old ezset.c and add in concept of curve number. Add to ezset
7 std::vector for individual curve parameters such as color, linestyle,
8 symbol. Read these vectors during plot generation
10 Add help button onto dialog's for reconstruction & projections.
11 Consider use of wxWindows help file classes.
13 Consider changing POL into a Class. Consider making it read tag tokens.
15 Consider being able to write Phantom files as text
17 3.0alpha1 - Released 12/30/00
19 * Added PlotFile class to system, used by if2 and ctsim for row
20 and column plots and comparison plots
22 * ctsim: Added image comparison statistics and image subtraction
24 * ctsim: Added plotting of rows & columns with y-axis scaling
26 * ctsim: Added row and column plot comparisons between two image
29 * Reworked statistics algorithm to share between imagefile and
32 * imagefile.cpp: Fixed scaling bug when rasterizing Phantom with
33 nsamples > 2. Added generic mage math functions, moved from
34 if1.cpp and if2.cpp to imagefile.cpp
36 * if1: Updated to handle error conditions, such as sqrt of a
39 * if2: Updated to output plot files and use new ImageFile class
42 * if1: Updated to use new ImageFile class math functions
44 * ezplot.h: Updated to more C++ conventions
47 First Microsoft Windows GUI version
48 Modifications for Microsoft Visual C++ compilation.
49 Improved pjinfo to output binary headers and view data, useful
50 when manually compiling phantoms that vary during projection
51 process. Thanks to Ian Kay for idea and code submission.
52 Improved sorting to find median in ImageFile::statistics
53 Fixed core-dump bug in Array2dFile::labelsCopy() function (Ian Kay)
54 Changed reconstruction dialog to fix onto smaller screens
55 Fixed display of plotting in Projection views
56 Improved animation displays for Projections and Reconstructions
57 Changed code to explicitly use std:: namespace rather than
58 "namespace using std" statements
59 Fixed reconstruction scaling bug introduced in 2.0.6
60 Renamed if2img to ifexport, if-1 to if1, if-2 to if2
63 Fixed minor compilation problem with procsignal.h
65 Fixed bug when simulating projections and Trace == CONSOLE
66 Fixed scaling bug when performing redundant rotations around object
69 Improved compilation on RedHat 7
70 Changed some of ANSI C header files to C++ header files
71 Removed README.RedHat7
74 Added documentation for --geometry setting
75 Added README.RedHat7 document
78 Fixed bug in generation of binary PGM files
79 Fixed MPI compilation bug in phm2pj.cpp
80 Inverted y-axis output for pj2if (bug alert from Ian Kay)
83 Additions to man pages (Ian Kay)
84 Fix problem with reading of ASCII phantom files (Ian Kay)
87 Fixed syntax error in fftw configuration
88 Slight modifications to support gcc v2.9.6
91 Version 2.0.0 released!
92 ctsim: Added Window menu to Main frame
93 ctsim: Disabled not support reconstruction method
94 Fixed obscure bug in sys_error
95 Fixed compilation in mingw environment not present
96 Fixed compilation in non-graphical environments
99 ctsim: Added animation of reconstruction
100 ctsim: Added saving of dialog parameters for Projection & Reconstruction
101 ctsim: Added progress dialog for rasterization of phantom
102 ctsim: used setpriority to set lower priority
103 ctsim: fixed pReconstruct not being deleted causing scaling problem
104 ctsim: fixed projection animation dialog buttons
107 ctsim: Added projection graph to animation of projection collection
108 ctsim: Added single stepping to projection collection animation
109 ctsim: improved File/Properties display for projection files
110 ctsim: Added progress dialog for reconstructions
111 ctsim: Added file labels for projection and reconstruction images
112 ctsim: Made File/Properties bring up modal dialogs
113 Added reconstruction for Equilinear and Equiangular geometries
114 Changed theta to be -PI/2 to make compliant with Kak-Slaney formulas
115 Separated reconstruction into Reconstructor class
116 Fixed center of detector adjustment for even number of detectors
117 Added --enable-static to generate statically linked programs
120 ctsim: Added animation of projection collection processs
121 ctsim: Added Auto Scaling for image windows
122 ctsim: Change menus from "windowing" to "display scaling"
123 Added FieldOfView and FocalLength ratio parameters to projection collection
124 Added FocalLength & FieldOfView fields to projection data files
125 Added Projection collection for Equilinear and Equiangular geometries
126 Changed name of Rowland Phantom to correct name of Shepp-Logan
127 Fixed bug in backprojection selection
130 Added RCS Id strings to executable files
131 Added RPM Spec file for RPM package creation
132 Added loading of ASCII phanthom definitions from files
133 Fixed compilation for non-SGP architectures
134 Decomposed SignalFilter class into ProcessSignal and SignalFilter classes
135 Added Filter-Generation option to reconstruction to allow direct or
136 inverse_fourier construction of filters
137 Added median to statistics and to auto-windowing
140 Added line color support to SGP
144 Finished support for dmallocxx library
145 Fixed bug in SignalFilter::convertFilterMethodNameToID()
146 Rewrote SGP & EZPlot to use C++ object-oriented. SGP can now write to
147 G2 windows and well as WXWindows.
148 ctsim program: "Create Phantom" now shows phantom object
149 Fixed row-plot bug in if-2
150 Reworked EZPlot's multiple plot operation
153 ctsim program: improved initial size and scroll area for image
155 ctsim program: added rasterization parameters, projections parameters,
156 and reconstruction parameters dialogs
157 Moved char[] static definition from header files to c++ files
158 Completely reorganized option processing in classes to improve
159 expandability and to assist ctsim graphical user interface.
162 ctsim program: Added dialog to set minimum/maximum display levels
163 Started ctsim.tex document file
166 Fixed compiler warnings at -Wall level
167 Began work on CTSim program to be graphical front-end of all functions
168 Moved current src/*.cpp to tools/*.cpp
169 Made CTSim graphical front-end's home to be src/
172 Added highly optimized backprojection method idiff3
173 Moved comparative stats to if-2 program from ifinfo
174 Fixed image display in if2img using G2 library
175 Added column-plot and row-plot options to if-2
176 Added autoselection of analytic/calculated spatial responses to SignalFilter
177 Added frequency-based preinterpolation to SignalFilter and idiff3
178 backprojection method. Currently, this technique is still under
179 development and debugging
180 Moved graphic file writing to ImageFile class from if2img program
183 Cleaned up SignalFilter class
184 Added zeropad option to pjrec
185 Added zeropad options to html and cgi files
186 Added fourier_table and rfttw filter methods
187 Added FFTW routines to use real/half-complex transformations
190 Updated trace level processing
191 Added trace level to SignalFilter
192 Fixed magnitude vs. real output bug in FFT/Fourier filter
195 Fixed const issue with ImageFileArray
196 Fixed Array2dFile::labelsCopy()
197 Added copy constructor and assignment for Array2dFileLabel class
198 Added Timer to if-2.cpp and ifinfo.cpp
199 Added beginning of frequency-based (DFT & FFT) filter to SignalFilter
200 Added option processing for filter-method for pjrec to choose
201 between convolution, dft, & fft filtering
202 Fixed format string for EZPlot so axis labels now print
203 Added support for FFTW library
206 Rewrote Array2dFile class to be non-templated
207 Rewrote Array2dFile class to make reads and writes atomic. No disk files are kept open.
208 Rewrote Array2dFileLabel class to make members private, added access routines
209 Removed timedate.cpp in favor of standard C library time/date functions
210 Renamed ctrec to pjrec, sample-ctrec.sh to sample-ctsim
211 Added signature tag and creation date/time to projection files
214 Standardized string option processing by classes. All classes use character strings
215 to select options rather than numeric constants. Added fail() and failMessage()
216 methods to verify that objects are created correctly by character strings.
217 Hid C++ assignment and copy constructors in classes that should not have assignment/copy
218 Rewrote ImageFile class
219 Started support for dmallocxx library, not finished
220 Added G.T. Herman image comparision statistics to ifinfo (see imagefile.cpp)
221 Updated ifinfo to show comparative statistics
222 Added printLabels() to Array2dFile class
223 Added printStatistics() to ImageFile class
226 Moved conversion filter name/id to Filter class
227 Moved conversion backprojection name/id to Backproj class
228 Added MPI broadcasting of strings
231 Merged proj_reconstr into class Projections
232 Used auto_ptr in Projections::reconstruct to make sure destructor is always called
233 Code cleanup in projections.cpp
234 Moved conversion of phantom names/id to Phantom class
237 Converted projection files to C++ library with frnetorderstream
238 Converted image files to C++ library with frnetorderstream
239 Converted filter and convolution to object-oriented code
240 Changed default image file to float from double -- Changable in imagefile.h
241 Optimized image file writing on little-endian architectures
242 Updated README and INSTALL
245 Reorganized source files
246 MPI bug fixed to phm2pj.cpp
249 Reorganized include files
250 Fixed const pointers in strfuncs
253 Renamed directories, moved source files, combined source files
254 to change from 6 libraries to 3 libraries (libctsim, libctsupport,
258 Skip versions to make version 2.0 the first fully C++ version
259 Renamed Raysums to Projections throughout files
260 Renamed Detector to Scanner
261 Converted Scanner and Projecions to full object-oriented
264 Converted Phantom and PhantomElements to Object-Oriented
265 Converted Detector to Object-Oriented
268 Improved Integer backprojection method
269 Fixed nearest neighbor to be truly nearest neighbor
270 Made linear interpolation more integer arithmetic -> speed improvement
271 Finished converting all C files to C++
272 Converted all use of malloc/free to C++ new/delete
273 Began object-oriented conversion of Phantom and Projection structures
276 Converted MPI data structures to C++ object
277 Made ImageFile directly inherit from Array2dFile
280 First C++ conversions
281 Portable IF (image file) format implemented with objects (SDF removed)
282 - Now all data files are cross-platform compatible
283 Converted from MPI to MPI++
284 Converted backprojection to object-oriented
285 Removed MTX from libkmath as no longer need -- replaced with C++ matrices
288 Simpilifed endian handling
291 Added support for 64-bit (IA64) CPU
292 Removed broken B-spline interpolation
293 Added support for cygwin platform under Windows 2000
294 Added support for 16-bit PNG graphics
297 Added compile-time configuration of endian order
300 Modified the raysum file format to be platform independent
303 Added Microsoft VC compatibility
304 Cleaned up compilation warnings in libgraph
307 Continued conversion to ANSI C
308 Removed old CRT routines
311 Renamed pictures to phantoms, objects to phantom elements
312 Continued code cleanup
315 More code cleanup with reorganizing libraries
316 Added --log and --exp to sdf-1
317 Allowed negative numbers for window levels in CGI interface
320 Continued code cleanup
324 Better documented, coded raysum in-memory on on-disk options
327 Cleaned out library that wasn't being used by CTSim
328 Modified ctsim.cgi to read in configuration file ctsim.conf
331 First open source distribution for GNU/Linux
334 Converted to GNU/Linux
335 added MPI support via LAM library
338 Developed under MS-DOS and IBM EGA graphics