It’s almost inevitable to use Docker images these days especially if you want to have a consistent development environment and configuration. They make life extremely easy by guaranteeing that your application (in this case, Computer Vision application) will always behave the same way as it did when you developed it. How? By using Containerization. If you’re not familiar with the topic then I suggest first doing some research and reading on “Containerization vs Virtualization” and how to use Docker. Then come back to this tutorial to learn how to create a Computer Vision Docker Image that you can use to develop and play around with TensorFlow and OpenCV for Object Detection.Continue reading “Computer Vision Docker Image with TensorFlow and OpenCV”
Qt provides an extremely simple mechanism for deploying applications on macOS, thanks to macdeployqt tool. Unfortunately, the same does not apply to Qt for macOS applications that reference 3rd party libraries such as OpenCV. In this post, I’ll describe the manual but simple process of adding 3rd party libraries into macOS Application packages in order to eliminate the need for installing those libraries on our target computers.Continue reading “Deploying Qt+OpenCV Applications on macOS”
I usually build OpenCV with the BUILD_opencv_world option which makes it quite easy to configure my Qt projects and work fast. But when it comes to deploying OpenCV powered applications, I still prefer to use the modular and default OpenCV build in order to deploy only the required DLLs and end up with a smaller installer file size.Continue reading “Configuring Qt for Windows Projects to Use OpenCV 4.1.0”
Following up on this post from last year, I’d like to share a couple of simple scripts that you can use to build OpenCV 3 or 4 on Windows, macOS and Linux operating systems. Needless to say, they require CMake and proper build tool sets on each platform.Continue reading “OpenCV Build Scripts for Windows, macOS and Linux”
This guide is quite similar to my previous How-Tos about building OpenCV from source codes and using them in Qt, but I wanted to created a fresh one and point out a few of the changes made in this recent OpenCV version that requires you to reconfigure your Qt projects just a bit.Continue reading “How to Build and Use OpenCV 4 with Qt5 in macOS Mojave”
If you’ve read my previous articles (especially this one) about how to use OpenCV in Unity and how to pass images between them, this post will feel like a breeze and you can just quickly skim through it. However, if you haven’t, I recommend doing so because in this post I’ll describe how to create an Android library that uses the OpenCV library and then include it in your Unity project, or in other words describe what we did in Unity for Windows this time in Unity for Android.Continue reading “How to Use OpenCV in Unity for Android”
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”
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”
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.
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”