Chapter 9. Cross-Platform and Native Windows

Working with Windows

The previous chapter introduced the HighGUI toolkit. There, we looked at how that toolkit could help us with file- and device-related tasks. In addition to those features, the HighGUI library also provides basic built-in features for creating windows, displaying images in those windows, and making some user interaction possible with those windows. The native OpenCV graphical user interface (GUI) functions have been part of the library for a long time, and have the advantages of being stable, portable,1 and easy to use.

Though convenient, the UI features of the HighGUI library have the disadvantage of being not particularly complete. As a result, there has been an effort to modernize the UI portion of HighGUI, and to add a number of useful new features, by converting from “native” interfaces to the use of Qt. Qt is a cross-platform toolkit, and so new features need be implemented only a single time in the library, rather than once for each supported platform. Needless to say, this has made development of the Qt interface more attractive, so it has more capabilities and will probably grow in the future, leaving the features of the native interface to become static legacy code.

In this section, we will first take a look at the native functions, and then move on to the differences, and particularly the new features, offered by the Qt-based interface. Finally, we will look at how you would integrate OpenCV data types ...

Get Learning OpenCV 3 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.