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