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