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