How to Use C++/Qt/QML/OpenCV to Write Mobile Applications

I have avoided using QML for long time and always wrote even the most simple applications using Qt Widgets and C++ code but the release of Qt’s Quick Controls 2 and Material Style just made it very irresistible and I had to go for it. Well it didn’t take too long to get a hold of things (for a newcomer) since I had enough programming experience and QML is just too well-structured and easy to learn and use. In this post I’m going to share a project that demonstrates using OpenCV in QML to write beautiful and powerful Android (and other platforms) apps.

Continue reading “How to Use C++/Qt/QML/OpenCV to Write Mobile Applications”

Diffuse Shading in OpenGL Using Qt

This one is taken from one of my favourite books (OpenGL 4.0 Shading Language Cookbook) and the relevant chapter’s title for this tutorial in the book is called “Implementing diffuse, per-vertex shading with a single point light source”. Of course it’s modified to use OpenGL ES in Qt which is more cross-platform and creates less issues with building and running on different operating systems (including Android and iOS)

Continue reading “Diffuse Shading in OpenGL Using Qt”

Sır

Sır aşikar olmaz meğer
Aşkın şarabından eğer
İçsen görürsün gördüğüm
Görmek bu aşuba değer

How to Read Wavefront OBJ Files Using C++/Qt

First of all let’s briefly go through what’s an OBJ File. Here’s a very brief description from Wikipedia: “OBJ (or .OBJ) is a geometry definition file format first developed by Wavefront Technologies for its Advanced Visualizer animation package. The file format is open and has been adopted by other 3D graphics application vendors.” Anyway, I’ll assume that now that since you’re here you already know what an OBJ File is and How and Where to use it.

Continue reading “How to Read Wavefront OBJ Files Using C++/Qt”

How to Show a Toast Message in Qt for Android

If you’re a regular Qt user (like me) and have tried writing Android applications with Qt then you must have come across situations where you’ve needed some very simple capabilities of Android API but it wasn’t present in the Qt library. Displaying a Toast message in Qt for Android is one of those situations. In this post I’m going to describe how to display Toast messages in Qt for Android, and it’s also a very good example of showing how to use JNI (QAndroidJniObject class in Qt, along with Java code) to access Java code from within C++/Qt code.

Continue reading “How to Show a Toast Message in Qt for Android”

Meleğim

Bu iki beyti yine yazmalıyımdır meleğim
Nefesi sözlere aktarmalıyımdır meleğim

Bu işin kürdü de yok, türkü de yok
Arap, acem, hepsi yalandır meleğim

Bu yalanlarla bizi hep ayırırlar
Seni benden, beni senden meleğim

Bizi düşman kılıp asude olurlar
Ama her şey, sonu vardır meleğim

Bu dövüşler, bu savaşlar, bu ölümler
Bir sabah uyandığında bitecektir meleğim

Geriye toz bile kalmaz göreceksin
İzleyen sen olacaksın meleğim

Ne olursak olalım, bu can emanet
Vereni bizleri hep izleyecektir meleğim

Best Way to Train and Test Haar or LBP Classifiers

cascade-trainer-gui

You can use Cascade Trainer GUI to easily train and test your cascade classifiers. It has a very simple user interface which helps with everything  related to training cascade classifier that are usable with OpenCV. Starting from preparing the positive and negative image data set, its cropper tool will help you with quickly preparing your training data set. Just make sure you have enough videos of the object you want to train a classifier for, and detect. It also allows avoiding all the complexities of setting parameters for the training. Of course if you want a very high quality classifier, then you’d have to touch a few parameters here and there but for the most part, it’s select and Go.

You can use the Train tab to train a classifier, and then use the Test tab to test it on a video or image. And switch between them as long as you’re not satisfied with your classifier’s performance.

You can always download the latest version of Cascade Trainer GUI from its official website, or by clicking here.

And make sure to report any bugs and missing features using the Contact Me page.