next up previous
Next: References Up: Interactive Textbooks; Embedding Image Previous: Performance Comparison

Conclusions

The purpose of this project was to investigate the suitability, or otherwise, of JAVA teaching image processing. The answer to this question became reasonably apparent during the early stages of the project, and we have concluded that JAVA is sufficently fast and flexible for image processing both for creating proper applications (such as Visilog or XV) as well as for providing interactive teaching material for students via the Internet.

One of our experiences with teaching image processing is that a suitable set of example images is not easy to derive, and textbooks do not have the space to allow an exhaustive presentation. On the other hand, when the example images can be derived on the spot, the learner has a much broader range of experiences. The benefits of the learner actually creating the examples is clear, in that the percentage of material retained in ``active learning'' (ie. learning while doing something), is much higher than in ``passive learning'' (ie. where the learner only reads or hears the material). The ability to embed JAVA more-or-less seamlessly into HTML documents also makes the teaching materials intellectually pleasing and easy use, whereas skipping between several different media or presentation windows can cause one to lose one's place or interest (or increase the intellectual ``energy barrier'' to actually doing the exploration).

 
Figure 9: Communicating Applets 

Figure 9 shows the embedding of text and interactive demonstrations in rudimentary form (see http://vision.dai.ed.ac.uk/kotsDEMO/demo.html), whereas a proper application of the approach would have more tutorial material and discussion of how to interpret the results (see http://www.dai.ed.ac.uk/daidb/staff/personal_pages/rbf/HIPR/hiprdemo/html/newthr.htm and http://www.dai.ed.ac.uk/daidb/staff/personal_pages/rbf/HIPR/hiprdemo/html/newgsm.htm.

One of the major reasons for JAVA's popularity arises from the fact that JAVA comes with many built-in methods specifically for image manipulation, such as for image loading and pixel retrieval. Implementing a function to load a gif or jpg image in C would be a tedious and difficult task. JAVA gives this and much more for free. Furthermore, it is easy to learn and use, debugging is usually straight-forward and is platform independent (but is subject to occasional bugs as new JAVA compilers and interpreters are being developed).

The question of performance which is raised in the case of interpreted JAVA is eliminated by compiled JAVA as we have seen in the previous section. JAVA compilers and JIT compilers already exist and new products are under rapid development.

The only development difficulties encountered were due mainly to the heavy use of threads during the initial approach to the development of the applets. It turned out that the WWW browser that the applets were being tested ongif could easily become overloaded which in turn caused it to halt for unreasonably long periods of time. These difficulties were eliminated by restricting the use of threads and by keeping the computation within them down to a minimum.

Based on the general ImageProducer and ImageConsumer paradigm, we showed that a wide variety of classes of image processing operators could be implemented in JAVA, that their execution time is reasonable when JAVA is compiled, and the Applets can be embedded in HTML text for use in teaching materials.

We are now using this methodology to add interactive exploration to the HIPR package [12].



next up previous
Next: References Up: Interactive Textbooks; Embedding Image Previous: Performance Comparison



Bob Fisher
Fri Jul 4 16:11:50 BST 1997