How to Pass Images Between OpenCV and Unity

A question I got a lot after writing this post quite some time ago was “How to pass a processed image from OpenCV back to Unity?!” Obviously, that tutorial described just the way to pass images from Unity to C# (because of the nature of what it needed to do) and my answers in the comments section didn’t quite clarify things for most people, so I thought why not write another tutorial and address all those questions in one go. This article is the result, so I hope it helps you understand not just how images are passed from Unity to OpenCV and vice versa, but also why it needs to be done like this.

Continue reading “How to Pass Images Between OpenCV and Unity”

Cascade Classifier Training – FAQ, Known Issues and Workarounds

After receiving almost the same questions about Cascade Trainer GUI application all over again from many different users, I realized that it will be much more useful for anyone with a similar question, and much more efficient for me to actually compile a list of frequently asked questions, all the known issues and error and warning messages and try to answer them all in one place. Here is the result.

Continue reading “Cascade Classifier Training – FAQ, Known Issues and Workarounds”

Download Prebuilt OpenCV Libraries for MinGW

This is something that is very commonly searched but not easily found. So, as a reference for myself and anyone who might need it, I have shared the prebuilt OpenCV libraries for MinGW in this post, namely OpenCV 4.1.0 for MinGW 7.3.0 32-bit.

Note: I’ve assumed that you already know how OpenCV is built but you’re just looking for OpenCV prebuilt libraries instead of building them yourself. However, if you want to build OpenCV for MinGW by yourself, you can search my website for plenty of tutorials and information to get you started.

You might be wondering what sort of CMake parameters (or changes) I used to prepare these libraries, so to answer it very briefly, here they are:

  • WITH_OPENCV_D3D11_NV = OFF
  • BUILD_opencv_world = ON
  • BUILD_opencv_python3 = OFF
  • BUILD_opencv_python_bindings_generator = OFF
  • BUILD_opencv_java_bindings_generator = OFF

You can use this link to directly download the libraries, and post your questions below in the comment box.



How to Build OpenCV 4.X for Native Android Development

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”

A Simple Script to Build OpenCV 3.4.3 for Windows

Update 2019-05-25: Added notes to help with changes and possible issues caused with more recent versions of CMake.

Over the years I have written quite a few guides and tutorials that describe building OpenCV from sources for Windows, however they were mostly done using the GUI. It means you’d have to be using CMake GUI to set some parameters and then a few other actions and you’d end up building OpenCV using Visual Studio like any other VS solution. Even though it’s quite simple to build OpenCV like this, you can’t automate it and you need to perform all the required actions manually. In this post though, I’ll be sharing a few simple commands that can be put inside a batch script that will allow you to build OpenCV for any platform you like, simply by executing (or double clicking) that script!



Continue reading “A Simple Script to Build OpenCV 3.4.3 for Windows”

Adding External Libraries to Qt Projects

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”

How to Create an Image Classifier Using Qt, OpenCV and TensorFlow

[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.


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.

Continue reading “How to Create an Image Classifier Using Qt, OpenCV and TensorFlow”

How to Use CMake with Qt5 and OpenCV 3 Projects

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”