// status         Section: chp#.sec#
//      Copyright 1994, Center for Computer Vision and Visualization,
//      University of Florida.  All rights reserved.

This file is just to allow me (rjj) to keep track of what I'm doing & how well.

Based on IAH, May 2, 1994 version
	but with anticipation of Intro chapter 1.


=================================================================
Chp  2: Image Enhancement Techniques
=================================================================
2.3 local averaging
 08/08	RCS'd and ready for testing.
 08/27	Packaged, iac++ 2.0 compliant.

2.6 max-min-sharping	940528		max-min.[ch] shaped-pointset.[ch]
 05/28	ONLY seems to work if I include max-min.c directly.
	shaped-pointset.h:: cross_hair() & digital_disc()
 06/05  Added 3rd cmd-line arg to chose pointset shape
	1st cmd-line arg is # of iterations
	2nd cmd-line arg is radius of shaped-pointset
	3rd cmd-line arg: 1==digital_disc(), cross_hair() otherwise
 06/06  test-shaped-ps.c is working well.
 06/16	Got comments back from jwn and made them the official version.
 06/23  RCS'd and in library.  Created MM_Specials.c for UDI version.
 08/27	Packaged, iac++ 2.0 compliant.

2.8 median-nbhd		940624
2.8 median-3x3		940218	
	There are two version of this algorithm, Nbhd & Template.
	They have been split into two separate directories.
	The template version is ONLY valid on 2D images.
	The nbhd version is valid on any dimension image.

 05/26	Template verision is compiling OK.
	Uses the loop_ps.h approach.
 05/28	Having problems with neighborhood version.
 06/23  RCS'd and in library.  Had to pull median_gamma function out
	into a separate file to get it to instantiate.
 06/24	RCS'd, in library, split into 2 dirs, Nbhd in library.
	How should I handle median_gamma.h
 08/27  Packaged, iac++ 2.0 compliant.
	Only the nbhd version goes in the IAH library.
	IA_ closure errors ?

*08/30	This code is seriously broken at this point.  HELP........

=================================================================
Chp  3: Thresholding Techniques
=================================================================
3.2 global-thresholding
 08/08	RCS'd and ready for testing.
	This version accepts three types of arguments, a single
	  value, an interval, and percentage.
	Note, there was a off by one error here, which has been
	  corrected.
 08/26  Packaged, iac++ 2.0 compliant.

3.3 semithresholding
 08/08	RCS'd and ready for testing.
	This version only does interval thresholding.
 08/26  Packaged, iac++ 2.0 compliant.

3.7 OTSU		940605
	loop-ps.[ch] defined for this function.
	It is driving a float arithmetic/conversion bug in the library.
	Uses histogram-iter.[ch], which needs to be placed in a library
 06/20  Driving bug in iac++ library: max(FDI)
 06/22	Bug seems to be fixed and everything is under RCS.
	Library version also made.
 08/26  Packaged, iac++ 2.0 compliant.

3.8 SIS thresholding	940604
	The template version of this can not be used for I<IP,u_char>
	because the template has -1 values in it.
	Does it need to be provided for anything other than IDI ?
	If not then it could be non-templatized...
	Either way UDI would need to be a special definition.
 08/27	Packaged, iac++ 2.0 compliant.
	ONLY IDI currently availabe, what about UDI, FID ?

=================================================================
Chp  4: Thinning & Skeletonizing
=================================================================
4.2 binary image boundaries
 06/23 BDI [interior|exterior]x[4|8]-boundary versions available.
       RCS'd and in the library.
       Since BDI*BDI not available, had to do BDI->UDI->BDI tricks.
 06/24 Revisited to utilize logical equivalents to the arithmetic
	operations described in the IAH ( ~ & | )
 08/26  Packaged, iac++ 2.0 compliant.

4.4 medial axis transform
 06/21 This seems like a natural for nbhd's, however, the inverse
	seems a little tricker.  For the inverse, shouldn't
	i = max(m) ? 06/23: YES
 06/23: Hold off on inverse BDI -> IDI
 08/26  Packaged, iac++ 2.0 compliant.

=================================================================
Chp  5: Morphological Transforms Techniques
=================================================================
5.4 salt and pepper noise removal
 06/23 Tested, RCS'd and in library.
 08/26  Packaged, iac++ 2.0 compliant.

5.5 hit-and-miss
 08/11	Since this is already in the library we decided that
	it was not necessary to implement it again.


5.7 rolling-ball
 ????	What is the final decision on how to handle the dual
	in this algorithm ?
	1) Just negate the value of the template, or
	2) Reflect through origin and negate ?
 08/26: This stll needs clarification of dual.h  ******************
 09/22:	Got rid of dual concept, now using the negated image to
	build the negated template.
 09/22 Test, RCS'd and in library.  Instantiations for UDI, IDI & FDI
	created a semi-sphere-image.[ch] support files for this.

=================================================================
Chp  6: Edge Detection Techniques
=================================================================
6.5 sobel-edge
 08/04	jnw will implement.

6.8 kirsch
 08/04	jnw will implement.

6.15 hueckel		940612
    This is only provided as functions on 2D FDI images.
    Only the simple case is currently provided, calculating the
	edge image, the vector valued case is still not impl'd.
    Joe pointed out that this is invariant template.  Utilizing
	this fact has lead to a speed up of ~ 40x.
    test-heckel.c	Test program, upto 3 cmd line args
			RADIUS(4), THRESHOLD(0.9), THETA_M(4)
    hueckel.[hc]	User interface, using Hueckel2D()
    hueckel-basis.[hc]	Hueckel basis functions
    Dependency on shaped-pointset.[ch]
 06/19 RCS'd and in the library
 06/22 Tested and in the library, however it is using a custom
	my_to_uchar() function that scales ... should this be
	provided as a support function ?
 06/24 Extracted my_to_uchar(), it is now scale_to_uchar<I>().
 06/25	sign() runs a little faster, which to use ?
 08/05 RCS'd with sign()
 08/28	Packaged, iac++ 2.0 compliant.

=================================================================
Chp  7: Edge Thinning & Boundary Finding
=================================================================

7.2 Thinning Edge Magnitude Images
 09/22 jnw is working on this one.


=================================================================
Chp  8: Linear Image Transforms
=================================================================
8.3 fast fourier	940523	940528	fft-nd.[ch]  fft-nd-iter.[ch]
	The only thing left here is for Joe to give his comment review
	and for me to figure out how to get the library stuff to work...
 08/28	Packaged, iac++ 2.0 compliant.
	Only the nd-iter version is in the IAH library.

8.5 walsh (fast)	940604		walsh.h walsh-nd.c
	The iterative version of this function has not been
	implemented, but should be a straightforward effort
	based on the fft-nd-iter.c code.
 08/05	The walsh-nd-iter.c code is there, but I'm not sure it
	works.  I know it needs comments reworked (still ref. fft)
	RCS'd, but uses Makefile, not GNUmakefile
 08/28	Packaged, iac++ 2.0 compliant.

=================================================================
Chp  9: Statistical Features
=================================================================
9.3 histogram		940518		histogram.[ch]  histogram-iter.[ch]
	Built both the template and iterative version of this.
	histogram.h defines:
		histogram()		cumulative_histogram()
		normailzed_histogram()	normailzed_cumulative_histogram()
	Same version of these are currently defined in the UM as
		image-example.03.c	template-example.04.c

	I want to just histogram.h to define the interface but Cfront
	does not want to let me do this.
	Also, the use of the IVIter<P,T> could force a change to
	the interface between the template and iter versions of .h file

	I have had to break this into two directories

9.4 cumulative-histogram  940517	histogram.[ch] histogram-iter.[ch]
	This is defined in the histogram directory.

 06/19 RCS'd and in library, but still getting iac++ instantiation errors.
 08/05 RCS'd the template version of histogram and cumulative-histogram.
 08/26	Packaged, iac++ 2.0 compliant.
	IA_ closure errors ?

=================================================================
Chp  10: Pattern Matching & Shape Detection
=================================================================
10.3 line detection using hough
 06/25:	Bob does not have this !

 07/06:	This may be working, but it is so slooooow.
	The lack of speed is because my implementation is
	using variant template.
 07/07:	RCS'd and in library.
	GNUmakefile is not quite correct, it is not checking out
	header files automatically.
 08/28	Packaged, iac++ 2.0 compliant.
	find-max-points() not in library, but will need a closure if
		we want it in there.

=================================================================
Chp 11: Connected Component Algorithms
=================================================================
11.3 sequential component labeling
 09/23 RCS'd and in library.
	Implemented with neighborhoods.  Two user version provided,
	one for 4-connected and the other for 8-connected.
	Only works on BDI images, returns UDI.

11.4 counting by shrinking	940516		cccbs.c cccbs-alt.c
	This one is done, but not one of the ones choosen by Dr. Ritter
	Ready for testing....
	Both versions done.
	We could probably use nbhds for the s & t linear_product()
	Avoid -1 image subtraction if we use chi > 1 ?
 08/05	RCS'd
 08/28	Packaged, iac++ 2.0 compliant.

11.5 hole-fills		940516			holefill.c
	Ready for testing....
	Can we use nbhd min() for addmin() ?
 08/05	RCS'd
 08/28	Packaged, iac++ 2.0 compliant.
 09/23  Repackaged as an external routine, to support 12.4.

11.6 euler-number	940516		euler.c euler.pattern.[1-7].c
	Ready for testing....
	Not being able to use chi_xx() results directly is anonying.
 08/05	RCS'd but uses Makefile
 08/29	Packaged, iac++ 2.0 compliant.

=================================================================
Chp 12: Image Descriptors
=================================================================
12.2 chain code
 06/25:	Bob had two version, I have to figure out which is which.
 08/09 Initial version RCS'd and ready for testing.
 08/29	Packaged, iac++ 2.0 compliant.

12.4 inclusing relation
 09/23 Appers to be compiling and generating closures for UDI & IDI.
	RCS'd and in library.  Needs testing.


=================================================================
Chp 13: Neural Networks
=================================================================
13. 2 hopfield
 06/29	Trying to calculate weight image with nbhd & tmpl ops.
	Found what looks like an oversight in the library.
 06/30	I'm allocating memory in the constructor so I have
	added a destructor...I assume this is necessary ?
 08/29	Packaged, iac++ 2.0 compliant.

13.5 single layer perceptron


=================================================================
Chp 14: Cellular Automata
=================================================================
14.2 Cellular Automata & Life
 08/14	life.[ch] test-life.c, RCS'd and ready for testing.
 08/29	Packaged, iac++ 2.0 compliant.

=================================================================
Support routines
=================================================================
gauss.[ch]
 08/14	Modified Juan Jose Murillo's <jm> code for the Gaussian
	 noise filter to be compatible with iac++ v1.x.  I have
	 packaged it for library usage, but when tested it
	 is printing what may indicate an error condition.
	RCS'd and ready for testing (test-gauss.c)
 08/25	Packaged, iac++ 2.0 compliant.

loop-pointset.c
 06/19 RCS'd and in the library
 08/25	Packaged, iac++ 2.0 compliant.

scale-to-uchar.[ch]
 06/24 Extracted from hueckel programs and made into an independent
	module.  Suports IDI & FDI to UDI conversions.
 08/25	Packaged, iac++ 2.0 compliant.
	IA_ closure errors ?

shaped-pointset.c
	Defines digital_disc() & cross_hair()
 06/19 RCS'd and in the library
 08/25	Packaged, iac++ 2.0 compliant.
