Computer Vision Docker Image with TensorFlow and OpenCV, From Scratch

After publishing this post some time ago which was a tutorial on how to create a Computer Vision Docker image using OpenCV and TensorFlow, I got many questions from people about the issues they’re facing when they try to use it. If you think something of a similar nature happened to you, then this post is meant for you.

Continue reading “Computer Vision Docker Image with TensorFlow and OpenCV, From Scratch”

Using OpenCV ANN MLP to Train a Model on Iris Flower Dataset

Even though OpenCV is mainly a Computer Vision Library, it still contains a large set of very powerful mathematical functions, optimization algorithms and even GUI utilities that can be useful in other applications as well. Besides the fact that it’s open source and has a very permissive license, the emphasis on speed and performance which has always been the main goal of OpenCV, makes it even more appealing for commercial grade applications. That was my main motivation behind writing this post, and I want to walk you through it with a classical machine learning example, that is training a multilayer perceptron to classify Iris Flower Dataset entries.

Continue reading “Using OpenCV ANN MLP to Train a Model on Iris Flower Dataset”

Computer Vision Docker Image with TensorFlow and OpenCV

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”

SignReport, a Tool for Batch Verification of PE Signatures

Code signing is one of the most popular ways of confirming the integrity of software packages. This is made possible by the author of the PE (such as *exe, *.dll and so on) using a Sign tool to add their signature (a certificate) to the PE file. Checking the signature of PE files on the other hand can be done by using WinVerifyTrust function. This example demonstrates how WinVerifyTrust can be used. In this post I’ll share the slight changes needed to make WinVerifyTrust work with Qt Framework, along with a tool built with Qt Framework, that can be used to verify the signature of all PE files within a chosen folder.

Continue reading “SignReport, a Tool for Batch Verification of PE Signatures”

Creating a Skybox Using C++, Qt and OpenGL

Skyboxes are commonly used in video games to create a realistic and wide sense of environment. In addition, they can be used to display 360 degree panoramic images, which is the reason why Computer Vision enthusiasts like myself are interested in this topic. To create a Skybox, you need a set of 6 images that correspond to the 6 sides of a cube. In this tutorial, we’ll learn how to create a Skybox using Qt with OpenGL.

Continue reading “Creating a Skybox Using C++, Qt and OpenGL”

Using OpenGL in Qt for Processing Images

Utilizing the power of the GPU, and OpenGL in particular, for Computer Vision and Image Processing purposes has always been a favorite topic of mine. It’s quite easy to find many examples around (even among official Qt example projects) to deal with and learn more about this topic but I figured there are no clear and step by step examples for people who are absolutely new to it. This post aims to cover a number of topics, including the following, in a step by step and simple manner:

  • How to use QOffscreenSurface class for off-screen rendering using OpenGL
  • How to use QOpenGLFramebufferObject to create Frame Buffer objects
  • How to use Vertex Shaders to perform Geometric Image Transformations
  • How to use Fragment Shaders to perform Image Filtering and per-pixel operations
  • How to convert a texture to QImage
Continue reading “Using OpenGL in Qt for Processing Images”

Deploying Qt+OpenCV Applications on macOS

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”