A Graphical User Interface is a system of graphical elements that allow the end user to interact with the underlying software of the GUI using simple mouse operations.
MATLAB has in-built support for GUI development and programming. Since we were already using it for our vision processing, we decided to design our GUI also using MATLAB. It offers two ways to design a GUI. One is through GUIDE, MATLAB’s Graphical User Interface Development Environment, and the other is through programming – a rather tedious method, same as in other non-interactive languages.
6.1 Graphical User Interface (GUI)
A Graphical User Interface (GUI) is a type of user interface which permits the people to interrelate with the electronic devices. A GUI offers graphical icons and visual signs contrasting to the text-based interfaces, typed command labels or text navigation to fully symbolize the information and actions available to the user. The actions are performed through direct operation of the graphical elements.
The term GUI is restricted to the scope of the two-dimensional 2D display screens with display resolutions capable of describing standard information.
A GUI uses a combination of skills and devices to provide a platform the user can interact with, for the tasks of gathering and producing information.
One of the important parts of the software application programming is the designing of the visual arrangement and the temporal behavior of the GUI. Its goal is to enhance the efficiency and ease of use for the underlying design of the stored program.
Typically, the user interacts with information by manipulating visual widgets that allow for interactions right to the kind of data they hold. The widgets of a well-designed interface are selected to support the actions necessary to accomplish the goals of the user. The important factor is that the good user interface design associated to the user, not the system architecture.
The visual graphical interface features of an application are sometimes referred to as ‘CHROME’.
A general form of the Graphical User Interface (GUI), which we all use, is the Microsoft windows that feature the following simple and basic components.
Pointer: A symbol seeming on the display screen which is used to select objects.
Icons: The small symbols that denote files, folders etc.
Desktop: The area on the display screen where the icons are assembled together.
Menus: The list of certain tasks out of which only one is performed at a time.
6.1.2 GUIs in MATLAB
A Graphical User Interface in MATLAB is a graphical display that encompasses the devices or components, thus facilitating the user to perform collaborating tasks. The MATLAB GUI is opportune to use as it releases the user from the effort of typing commands in the command line or writing overlong scripts to perform a task.
The GUI in MATLAB can demonstration data in the tabular form or in the graphical form. The most common modules used in creating GUI in MATLAB are listed as under.
1. Push Button
6.1.3 Working of MATLAB GUI
The GUI itself and each component used in the GUI are associated with a user-written callback routine. When a particular action on the GUI screen is performed, the corresponding callback is called and the pre-defined function for that action takes place. The pre-defined functions are stored in the callbacks by the creator of the GUI.
This kind of performance of a certain function when a certain action occurs is known as event-driven programming. The occurrence of an action is called the event. In the event-driven programming, the callback execution is asynchronous, controlled by the events external to the software. For the MATLAB GUIs, these events usually take the form of user interaction with the GUI.
One important factor regarding the occurrence of sequence of events that led to their execution is that they are outside the control of the GUI creator. Also he does not have control over when the callback does execute.
6.1.4 Creating GUIs in MATLAB
The MATLAB offers two methods for creating GUI.
Creating GUI with GUIDE
Creating GUI Programmatically
In the coming few pages, we will have an overlook on the methods of creating GUIs by both methods.
188.8.131.52 Creating GUIs with GUIDE
GUIDE, the MATLAB Graphical User Interface Development Environment, provides the set of tools for creating the graphical user interface (GUI). The creation of GUI through GUIDE involves two processes.
Laying out the GUI
Programming the GUI
Laying Out the GUI
The GUIDE layout editor allows the creator to populate the GUI by just clicking and dragging the components into the GUI area. Some tools allowing the GUI to be resized, align components, tab order settlement, view of hierarchical list of component objects are also accessible from the Layout Editor.
When the GUI is saved, GUIDE creates two files, a FIG-file having extension .fig which is a binary file containing the description of the layout and an M-file having extension .m containing the code to control the GUI.
2. Programming the GUI
When the GUI layout, created in GUIDE, is saved, the GUIDE automatically creates an M-file that is used to control the functioning of the GUI. This M-file contains the code for the initialization of the GUI and the performance of functions when the callback for a certain event is called. A callback is a program that is associated with a certain event of GUI or with GUI itself.
The first callback in every GUIDE created GUI M-file is the opening function.
Each callback has its own triggering mechanism. Every callback has some properties. The number of the callback properties varies in different events.
184.108.40.206 Creating GUIs Programmatically
The MATLAB provides the suite of functions for creating GUI programmatically.
6.1.5 Our GUI
Our designed GUI contains the following components.
Left Image Preview Axis
Right Image Preview Axis
Disparity Map Axis
FYP Logo Axis
SSUET Logo Axis
The GUIDE layout window with the arrangement of the above mentioned components is shown in the Figure 6.1.
Figure 6.1(layout of GUI)
The FYP and SSUET logo axes are to display the FYP and SSUET logos respectively. The rest of the statements are just the description of the project written using the Static Text component of the GUIDE.
The left and right image preview axes are used to show the live video streams (camera preview). The video streams are available after pushing the ‘Preview’ push button in the ‘Control Panel’.
By clicking the push button tagged ‘TASK A’ the command sends to perform TASK A and robot received it and act according to. While clicking the push button tagged ‘TASK B’ the command sends to perform TASK B and robot received it and act according to.
The resulting rectified stereo images are then clipped by certain dimensions so as to reduce the field of view of the robot. The clipped stereo rectified images are then processed to compote the Disparity Map which is displayed on the GUI screen using the disparity map axis.
Figure 6.2 (GUI in action)
6.2 Remote Monitoring
In computing, the term remote desktop refers to a software or an OS feature permitting graphical applications to be run remotely on a server, while being presented locally. Remote desktop applications have variable features. Some allow attaching to an existing user’s session (i.e. a running desktop) and “remote controlling” it in front of the user’s eyes. Taking over a desktop remotely is a form of remote administration.
It can also be explained as remote control of a computer by using another device connected via the internet or another network. This is widely used by many computer manufacturers (DELL, HP etc.) for technical troubleshooting for their customers. Windows XP has its own built in remote desktop option.
The quality, speed and functions of any remote desktop protocol are based on the system layer where the graphical desktop is redirected. Software such as PC Anywhere, VNC ,Teamviewer and others use the top software layer to extract and compress the graphic interface images for transmission. Other products such as Microsoft RDP and others use a kernel driver level to construct the remote desktop for transmission.