When dealing with data encryption and decryption in Windows operating systems, probably one of the best choices is to use the Data Protection API. In this post I’ll be sharing two simple functions that can be used to encrypt and decrypt data (such as passwords, recovery keys and so on) that you want to store in an easy, quick and highly protected manner. Needless to say, these functions can be used with C++ and Qt Framework.Continue reading “How to Use DPAPI with Qt Framework to Encrypt and Decrypt Data”
For a number of different reasons, you might want/need to build OpenCV from scratch instead of using the pre-built and official libraries provided by OpenCV. Since you’ve ended up reading this post, there’s a good chance that you already know why you might need to do this, but if you don’t, you can check out my similar post from a couple of years ago for some answers on this. That post was based on OpenCV 3.3 which is considered out-of-date these days, especially with OpenCV 4 out in the market (OpenCV 4.0.1 at the time of writing this article), so I decided to write a new tutorial to address some of the differences. So without without further ado, here we go.Continue reading “How to Build OpenCV 4.X for Native Android Development”
As simple as it sounds, most of the time it’s a hassle to add the required libraries to your Qt projects. You have to add the include path, the libraries and if you are aiming to have a cross-platform project, you need to account for Windows, macOS and Linux operating systems separately. Well, there are a couple a methods to simplify this a bit which I’ll describe in this tutorial.
Continue reading “Adding External Libraries to Qt Projects”
In this post I’m going to describe how you can use FFmpeg library to convert videos in your Qt applications, or even write a Video Conversion program that uses FFmpeg as its underlying powerful conversion engine.
Unfortunately you can’t use Qt Framework out-of-the-box to convert video files and formats to each other (at least that is the case until the time this post was published, or in other words until Qt5.10.1). One of the most practical workarounds for this missing capability is using 3rd party video conversion libraries and tools such as FFmpeg.Continue reading “How to Convert Videos Using Qt and FFmpeg”
Before I come up with the current title of this post, I thought of many other titles including:
- How to send mouse clicks and events to a Qt widget behind another widget
- How to make a Qt widget ignore mouse events
- and so on …
Although the answer was very straightforward and easy, I struggled a lot with it since I wasn’t asking the right question.
Continue reading “How to Make a Qt Widget Transparent to Mouse Events”
In this post I will describe the process of of reading, performing any arbitrary image processing algorithm and displaying an image read from a video file, camera or RTSP feed using OpenCV , and the same time keeping the user interface (created using Qt) responsive.Continue reading “How to Read, Process and Display Videos Using Qt and OpenCV”
Here is what you need to add to your Qt qmake projects to be able to add and use OpenCV 3.4.1 default set of libraries. I usually add them into a separate *.pri file and include that in my *.pro files to avoid repetition, but that’s up to you. Well, here it is:Continue reading “Adding Required Includes and Libs for OpenCV 3.4.1 in qmake Projects”
[Updated this post on April 04, 2019, to make sure this tutorial is compatible with OpenCV 4.x and TensorFlow 2.0]
In this post we’re going to learn how to create an image classifier application with a proper GUI that allows the users to choose a camera or a video file as the input and classify the incoming images (video or camera frames) in real time. We’ll be using the power of Qt for cross-platform GUI creation and anything related to visualizing the output and allowing a seamless experience for the user. We’ll also be using TensorFlow and OpenCV to handle the actual classification task, along with accessing cameras and video files.
Continue reading “How to Create an Image Classifier Using Qt, OpenCV and TensorFlow”
With the more recent versions of OpenCV, a new module was introduced for handling Deep Learning problems, which is getting better and better by each release. This module is called “dnn” and I recommend getting the latest version of OpenCV (3.4.1 at the time of writing this article) to make sure you face no issues at all (or less issues if any). Using this new module, we can load and use deep learning models from popular 3rd party libraries such as TensorFlow, Caffe, DarkNet and so on. In our example project we’ll use pre-trained TensorFlow models, namely ssd_mobilenet_v1_coco, however, you can easily use other models too if you get a firm grasp on all of the information provided here.
Following a number of questions that appear before me every now and then, I decided to write a post about using CMake to create and build projects using Qt5 and OpenCV 3. For those of you who are qmake fans, using CMake doesn’t mean you can’t use Qt Creator to create and build your projects. In fact, after the release of more recent versions of Qt Creator, CMake support is getting better and better, and it’s fair to say that using CMake with Qt Creator 4.5.1 is almost as easy as using qmake.Continue reading “How to Use CMake with Qt5 and OpenCV 3 Projects”
In this post I’ll share an example project that describes how to load and view 3D models using Qt (such as Blender files and so on). The source codes here are tested with Qt 5.9.4 which was released a few days ago.Continue reading “Viewing 3D Models Using Qt”