GISdevelopment.net ---> AARS ---> ACRS 1997 ---> Poster Session 2

Software Customisation :Costomisation of the Graphical User Interface in Digital Image Processing System

Mohamad Sam Manaf
Malaysian center for remote sensing
Letter Box 208, CB 100 5th Floor city square center
50400 Jalan Tun Razak Kuala Lumpur Malaysia

Abstract
Software customization is a process to maximise the capability of a system in order to suit with local environment and specific needs. This project was undertaken to understand the techniques used in the process of software customization. As on e of the most well known remote sensing software nowadays, Erdas Imagine was chosen as working based software. Erdas Imagine can be customized using a macro Language, i.e. Erdas Macro Language ( EML).

The EML is a script's language that is designed for generating a graphical user interface which allow us to design the same graphical user interface tools that are used in Erdas imagine. Another important aspect EML is also can be sued to incorporate with C programmes' Toolkit programs into the Erdas imagine graphical user interface. In this project I customized and created a few of GUIs in Erdas Imagine system which perform image processing application such as Band Ratio, Band Math, PVI, NDVI, digital data compression, contrast stretching and image zooming.

Introduction
Digital image Processing technology has evolved rapidly in recent years to become a valuable tool in improvement of analysis activities in remote sensing and Geographical information system ( GIS). In the beginning, most of the system were created based on the specific field of research, for example Erdas was created primarily in handling thereaster based or imager based mapping, Arc info specific in vector based data processing, etc… Generally, the systems can be classified according to their general goals. Leonard Bolc Zenon Kulpa ( 1981) were listed five distinguishable classes as follows.
  1. system created as tools investigator some specific scientific problem. The principle goal is to solve one problem rather than to built a general system.
  2. System created as a general purpose ( although simple ) image processing device. These system are intended for a wide range of processing tasks that are research rather than application-oriented. The principal goal is to built a universal system for research in image processing itself rather than to solve some specific applications problem.
  3. System s intermediate between the above type : with some specific applications in mind but universal enough an serving as research prototype rather than a unique laboratory. Assembly or a finished production model; the principal goal is to built a fairy universal system, although good for some specific applications.
  4. System experimenting with new computer architectures that are used gain experience in effectiveness of the proposed set of hardware operations and memory organization. The principal goal is to built an effective and universal new processor rather than a simple and cheap " working " assembly of existing devices .
  5. Commercially available systems for routine picture. Universal enough to be used in sufficient wide range of different principal goal is to cover a wide range if applications rather simple routine applications, yet capable of atomization.
The system described are not well equipped to solve all of the problems that are encountered by the users, therefore one system is not enough to fulfill their needs. The alternative is to have more then one system at the same time, however this is not the best solutions, because of ht cost and complications. To develop a system that will satisfy all of environmental conditions as well as the local cultured. Considering the fact that the development of remote sensing and GIS software is very costly process and needed special expertise therefore not ev4ry country is capable to produce a competitive software in this field. Considering these factors ,a solutions have a work out in order to make a system can be used more effectively.

A solutions of the problem was introduced in the late system where the users are provided with the utility which they can customize and extend the capability of the system according to their needs. This sort of utility make the system more flexible and powerful, the limitations is now relies themselves, the ability of them to customize and extend the system.

The principal is applied in ERDAS IMAGINE where Erdas Macro Language (EML) is designed to be able the users to customize the GUI and to extend the capability of ERDAS IMAGINE. The EML can be classified as a high level programming language which it is visually interpreted. As a high level programming language EML can be used to create a very comprehensive and interactive interface with a very little programming codes compared to the ordinary programming language such as C , Pascal, Etc.

This project is an approach of customizing the interface of Erdas Imagine system Erdas Macro Language can be used to design the same graphical user interface tools that are used in Erdas imagine. There are two major features that EML had been used for, that first feature is to customize the imagine user interface and the second features is to incorporate C Programmers' Toolkit inot the imagine graphical user interface.

Methodology
The user interface is hard to build. In this section the methodology of building the Graphical user interface (GUI) in Erdas imaging is discussed. To design and build a user interface, the following steps are generally excuted:
  1. identify the needs of the users
  2. construct a scenario
  3. find a metaphor
  4. provide a design rationale
  5. design the system
  6. Build a protoype
  7. test and
  8. modify

Fig . 1. Methodology flowchart

Currently, not every system is allowed their users to customize the GUI of the system. The satellite GUI system can only be customized by the producers of the system itself. Every time where the system is added with some new utilities or have some modifications, the users have to change the whole system in order to increase the capability of the system.

The system that are provided with the customizing utilities are more efficient where the users are enable to customize them either by using a special programming language or by using special tools that available in software. In this project , software customization by using a programming language is used where the Erdas imagine system is chosen as working based software which it has a macro language called Erdas Macro Language (EML) which can be usec to coustomise the GUI of the system.

Erdas Macro Language
When the designing of ERDAS IMAGINE began, it was clear that a traditional, static Graphical User Interface (GUI) would not meet the needs of variety of users. Users wanted to be able to customize the interface and to create scripts which could be used to execute frequently used function.

The EML is a scripts language designed for generating a graphical user interface. EML allow us to design the same graphical user interface tools that are used in ERDAS IMAGINE. There are tow major features that EML can be used for :
  1. customize the imagine graphical user interface for our own use.
  2. incorporate C programmers ' Toolkit programmes into the imagine graphical user interface
EML was designed to be a distributed tools shared among co-operating applications. It is implemented as a library of functions which are built into application to give them a common functionality . the apparent feature EML is the creation of GUI from a script file Each EML application recognizes the EML script syntax and reads EML script files to creates its GUI, EML also provides interpr9ocess communications capabilities which serves to tie all RML applications together.

Programming in EML.
An EML script may consist of a mix procedural definitions and GUI definition. The procedural definitions are called procedure an may exist stand-alone in a script or they can be mixed within a script which defines a user interface. The GUI definitions are all contained in a component which is built of variables , menus and frames . the frames are built of frameparts such as button, meters, text areas, etc. . Features 2.1 shows the components of an EML script file.

Component
All GUI elements in an EML script are contained in a component. The component is simply a means of collecting one or more GUI objects in to a single named group. Components may contain one or more of the following elements: I) frame definitions; ii) Menu definitions ; iii) framepart attributes definations ;iv) Procedure


Figure 2.1. Elements of EML

Discussion
Each application has an EML script file containing the EML command and function that generate the graphical user interfaces (GUI) of the application in this project, there are several GUI in Erdas Imagine system that were customized by using the EML and all or them are as listed below.
  1. Main Menu
  2. Band Ratio
  3. Band Math
  4. NDVI
  5. PVI
  6. Contrast Stretching
  7. Zoom
  8. File Manager
  9. File Compression
  10. File Decompression
Figure 2 shows one of the GUI that was customized for 'Band Math' application.


Figure 2. The Customised GUI for Band Math Application

Conclusion
  • Generally, by providing the customization facility in a system is a brilliant idea to ensure a great capability and flexibility of the system. This sort of utility enable the system can be customized and extended without high requirements in time and skill.
  • Although EML can be used successfully to customize the interface of Erdas Imagine, however, it still have some limitations that users can't totally rely on it capability. Generally, the capability of EML is only in creating GUI but it can't directly access to the data structures where in this part EML has to interact with the C-toolkit program. The C-Toolkit is very powerful but it also much more complex programming language compared to EML. The C-Toolkit is used to create application functions that directly access to the data structures.
References
  • Berstein, R., 1978, "Digital Image Processing For Remote Sensing", Prentice Hall, Inc., USA.
  • Bolc, A. L., and Gehani, N., 1984, "Comparing and Assessing Programming Languages", Prentice Hall, Inc., USA.
  • Furht, B., 1996, "Multimedia System and Technique", Florida Atlantics University, USA.
  • Arman, F., Hsu, A., and Chiu, M., 1993, "Image Processing On Compressed data for large video database", Multimedia '93 Proceedings, pp. 267-272.
  • Green, M., 1982, "Towards a User Interface Prototyping System", Graphic Interface '82 Proceeding, pp. 37-45.
  • Horowitz, E., 1983. "Fundamentals Of Programming Languages", Springer-Verlag, Berlin-Heidelberg, New York.
  • Knuth, D. E., 1974, "The Art of Computer Programming", Academic Press, New York.
  • Organick, E. I., Alexendra, F. I. and Reber, P. P, 1979, "Programming Language Structure", Academic Press, Inc., New York.
  • Philip, P. and Green, M., 1982, "The Use Of Object Oriented Language in Graphics Programming", Graphic Interface '82 Proceeding, pp. 67-73.