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