4
Graphical User Interface
HighGUI: Portable Graphics Toolkit
The OpenCV functions that allow us to interact with the operating system, the filesystem
1
, and hardware
such as cameras are collected into a sub-library called HighGUI (which stands for “high-level graphical
user interface”). HighGUI allows us to open windows, to display images, to read and write graphics-related
files (both images and video), and to handle simple mouse, pointer, and keyboard events. We can also use it
to create other useful doodads—like sliders, for example—and then add them to our windows. If you are a
GUI guru in your window environment of choice, then you might find that much of what HighGUI offers is
redundant. Yet, even so, you might find that the benefit of cross-platform portability is itself a tempting
morsel.
From our initial perspective, the HighGUI library in OpenCV can be divided into three parts: the hardware
part, the filesystem part, and the GUI part. We will take a moment to overview what is in each part before
we really dive in.
The hardware part is primarily concerned with the operation of cameras. In most operating systems,
interaction with a camera is a tedious and painful task. HighGUI allows an easy way to query a camera and
retrieve its latest image. It hides all of the nasty stuff, and that keeps us happy.
The filesystem part is concerned primarily ...