Chapter 8. Image, Video, and Data Files
HighGUI: Portable Graphics Toolkit
The OpenCV functions that allow us to interact with the operating system, the filesystem, and hardware such as cameras are mostly found in the module called HighGUI (which stands for “high-level graphical user interface”). HighGUI allows us to read and write graphics-related files (both images and video), to open and manage windows, to display images, 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. Even so, you might find that the benefit of cross-platform portability is itself a tempting morsel.
In this chapter, we will investigate the portion of HighGUI that deals with capture and storage for both still and video images. In the following chapter, we will learn how we can display images in windows using the cross-platform tools supplied by HighGUI, as well as other native and cross-platform window toolkits.
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 give an overview of what is in each part before we really dive in.
In OpenCV 3.0, HighGUI has been split into three modules:
imgcodecs (image encoding/decoding),
videoio (capturing ...