Book Image

Computer Vision with OpenCV 3 and Qt5

By : Amin Ahmadi Tazehkandi
4 (1)
Book Image

Computer Vision with OpenCV 3 and Qt5

4 (1)
By: Amin Ahmadi Tazehkandi

Overview of this book

Developers have been using OpenCV library to develop computer vision applications for a long time. However, they now need a more effective tool to get the job done and in a much better and modern way. Qt is one of the major frameworks available for this task at the moment. This book will teach you to develop applications with the combination of OpenCV 3 and Qt5, and how to create cross-platform computer vision applications. We’ll begin by introducing Qt, its IDE, and its SDK. Next you’ll learn how to use the OpenCV API to integrate both tools, and see how to configure Qt to use OpenCV. You’ll go on to build a full-fledged computer vision application throughout the book. Later, you’ll create a stunning UI application using the Qt widgets technology, where you’ll display the images after they are processed in an efficient way. At the end of the book, you’ll learn how to convert OpenCV Mat to Qt QImage. You’ll also see how to efficiently process images to filter them, transform them, detect or track objects as well as analyze video. You’ll become better at developing OpenCV applications.
Table of Contents (19 chapters)
Title Page
Dedication
Packt Upsell
Foreword
Contributors
Preface

Multithreading in Qt


The Qt framework offers many different technologies to deal with in applications. The QThread class is used to handle all sorts of multithreading functionality and, as we'll see in this chapter, using it is also the most powerful and flexible way of handling threads in Qt framework. In addition to QThread, the framework offers a number of other namespaces, classes, and functions that help with various multithreading requirements. Here's a list of them, before we see examples of how they are used:

  • QThread: This class is the base of all threads in the Qt framework. It can be subclassed to create new threads, in which case, you need to override the run method, or you can create new instances of it and move any Qt object (the QObject subclass) into a new thread by calling the moveToThread function.
  • QThreadPool: This can be used to manage threads and help reduce thread creation costs by allowing existing threads to be reused for new purposes. Every Qt application contains...