
This video explains the course prerequisites and provides an entire overview of the course.
This video will covert how to install the Qt5 library and the development environment QtCreator.
• Download the Qt5 from its website
• Install the library and the IDE
This video will show a brief tour through QtCreator and some of the tools we will be using in this course.
• Review the welcome screen
• Review the edit and debug mode
• Review the help mode
This video will show how to download and configure OpenCV for our project.
• Download OpenCV from its website
• Configure and build OpenCV
• Install OpenCV in your system
The aim of this video is to introduce the student into the QML programming language to create a QtQuick GUI.
• Know QML
• Work with .qrc files
• Theme my app
Here, the student will learn how to create a base GUI for the application we will be developing throughout this course.
• Set up and create necessary files
• Create a PageStack
• Put elements in the GUI
This video will show how to convert an OpenCV Mat object to a QImage Object.
• Create a class Frame containing a Mat and a QImage object
• Define a function that copies the data from the Mat object to the QImage object
• Draw the QImage object into the view
This video shows how to paint a QImage Object into the QtQuick GUI.
• Expose the Frame class to QML
• Use the Frame class as a QML object in your view
• Receive a signal to update the Frame object and show an image in your view
This video teaches the student how to create and manage Threads using Qt.
• Create a class that opens a video capture
• Create a class that manages threads and moves the video capture to one
• Expose the thread manager class to QML
Lastly in here, the student will learn how to use the Threads to show videos in a QtQuick GUI.
• Connect the threadmanager class to your view
• Run your video capture from QML
• Update your view using signals and slots and show a video in QML
Sometimes images have noise. In this video, we will learn how to reduce that noise using the Gaussian filter.
• Load an image using OpenCV
• Apply the Gaussian blur filter to reduce the noise
• Update the view with the new image
In this video, the student will learn how to apply the morphological operations the Erode and the Dilate.
• Load an image using OpenCV
• Apply the Erode or the Dilate operation
• Update the view with the new image
Here, the student will learn how to find contours of objects in an image using the findContours function.
• Load an image using OpenCV
• Apply the canny filter and colour the objects edges
• Update the view with the new image
This video shows how to use the Erode and Dilate functions to search for horizontal and vertical lines in an image.
• Load an image using OpenCV
• Erode and Dilate image to show the vertical or horizontal lines in the image
• Update the view with the new image
In here, the student will learn how to apply a Laplacian filter to search for objects contours in an image.
• Load an image using OpenCV
• Apply the Laplacian filter
• Update the view with the new image
This video shows how to detect objects edges with the canny function.
• Load an image using OpenCV
• Apply the canny filter
• Update the view with the new image
In this video we are going to subtract the background of a video stream an track the objects moving in the foreground.
• Grab frames from the video
• Apply the subtraction algorithm to mask the background
• Show the foreground objects
Here the student is going to learn how to track color in a video.
• Grab frames from a video
• Track a specific color in the video
• Track object of the specific color
This video shows how to capture videos from our webcam.
• Grab frames from a camera
• Show the input in the QML view
In here we are going to use a Haar Cascade Classifier to detect frontal faces in a video.
• Open the Haar Classifier trained model
• Use the classifier to detect faces in the frames
• Draw boxes surrounding the faces in the frame
In here we are going to implement the YOLO Algorithm to detect objects in a video.
• Load the pre-trained models
• Configure the neural network
• Detect Object in the frame
We are going to use the YOLO output to draw boxes surrounding the detected object.
• Search for object coordinates in the frame
• Draw boxes surrounding those objects
• Update the view
This video shows how to use the classes we already create to implement two thread and to capture two camera inputs at the same time.
• Read the input from a camera using its index
• Create a thread to run a capture per camera
• Call the threads in the view and update it
In this video, we are going to extract some data from the inputs to calibrate the cameras.
• Search for a chessboard pattern in the inputs
• Draw the inner corners of the chessboard in the screen
• Calibrate cameras and calculate the necessary data to rectify images
Here, the student will learn how to save the data extracted in the previous video.
• Open a file storage
• Write the data
• Save and release the file
Here, the student will learn how to read the saved data from a file.
• Open the file with a file storage
• Read data from file
• Release file
In this video, we are going to generate a Depth Map with the information obtained in the previous lesson.
• Rectify the input images capture from the cameras
• Generate the Depth Maps
• Adjust the resulting image to show it in the view
Install and configure OpenCV and QtCreator for Android.
• Install Android SDK and NDK
• Configure Qt Creator
• Compile and Install OpenCV for Android
Create a new Android Virtual Device to run our application.
• Download the system image file
• Create the Android Virtual Device
• Run the Android Virtual Device
Create a class QAndroidActivityResultReceiver that use QAndroidJNIObject to make an intent to the Android Gallery.
• Create a method to call create an intent to the Gallery app
• Prepare the intent calling Java Android Objects from C++
• Make the intent sending a code
Continue extending the class and add a method to receive the URL of an image from the Gallery app.
• Create a new method
• Prepare a ContentResolver and a Cursor to hold the image url
• Use the ContentResolver and the Cursor to parce the url into a string
Checking the default Debugger configuration in Qt Creator and creating a new Debugger.
• Check the debugger information in the option menu
• Create a Debugger in the option menu
Use the debugging console to print the message and use breakpoints to debug our application.
• Include the QDebug library
• Use the QDebug macro to print message
• Set breakpoints to debug our app
Use the console to log debug information.
• Use the console.log statement
• Use the console.assert statement
Turn our application into a subproject so that we can add unit test to it.
• Create a project and add our app as a subproject
• Create a shared library to hold our model classes
• Create a Unit Test
OpenCV is the most popular library for building computer vision applications. Qt is a C++ IDE used to create GUI applications with ease. The main benefit of using Qt is that we can integrate OpenCV GUIs of GUIs created with Qt. Follow along with instructor Antonio Ortiz to build cross-platform applications using Qt.
In this course, you will learn to combine the power of OpenCV and Qt. First, you will start by grabbing some images and videos to show them in QML. Antonio also shows you how to calibrate an array of two stereo cameras. You will learn to deploy your application on both Linux and Android platforms.
By the end of this course, you will have become better at developing OpenCV applications, especially with Qt.
About the Author
Antonio Ortiz Lira is a Venezuelan Software Developer and Researcher. He obtained his Engineering Degree in 2010 in the Santa Maria University in Caracas and since then he has worked in Linux operating system development, Computer Vision, robotics, and mobile application programming. He's now the president and lead researcher at Disinglab.