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