It’s been a couple of weeks since my last post and this is due to the fact that I need to do quite a lot of reading (not only books) in order to get forward and honestly all this reading doesn’t make for a good post. Anyway, to give a bit of an insight into the things I’m currently occupied with, I’ll present a small overview here of the things I did and my thoughts about them in no particular order. So there it goes:
The main focus of my reads nowadays is OpenCV and Qt, and especially how these two can work together. I started to familiarize myself with the former, because I was always impressed by the fact that cars, robots (Boston Dynamics is really cool), security systems, my old Fuji bridge camera (10+ years), etc. are able to recognize and/or classify real world objects, track movement, measure size and distance, understand motion, etc. and sometimes even make decisions based on the information gathered. Since it was a complete mystery to me how it is all done and my programming skills (which still has a lot to develop) finally got to a point where I can actually start to rely on them, I simply visited the OpenCV website one day and started to go through the tutorials there.
As I was going through these tutorials, they started to remind me quite a bit of cplusplus.com’s C++ tutorial section, which although will give you a glimpse into the thing they are discussing, they are by far not enough. To use an analogy, they are like a detailed table of contents of a book, which you can skim through to get the general idea, but don’t expect more than that. Don’t get me wrong, they are very useful since I don’t want to buy an expensive book before I know that it is the stuff I really want, so I’m more than glad they are there, but it they ran out of steam pretty quickly, so it was high time to go deeper than periscope depth.
Apart from reading an in depth intro book about OpenCV, going deeper poses a bit of a challange, as the library is indeed quite large, and altough it provides some basic GUI (Qt based), it is not really appealing in its current form (looks like something from a previous decade). I thought of replacing the built in GUI altogether with native Qt, which means one has to insert OpenCV functionality into Qt code. This could be problematic, since both Qt and OpenCV provide their own versions of smart pointers, image classes, streams, etc, (and then there is the STL as well), so making them all work together nicely is not necessarily straightforward. Also, Qt has two supported GUI modules in parallel (Qt Widgets and Qt Quick 2), so which one to use is still a question to be answered (I’m looking into that right now).
There are good news as well though. OpenCV is (as far as I can tell right now) already written with threading and CPU optimizations in mind, so the worries about CPU intensive parts seem to be soothed right from the beginning, which means I don’t need to get in touch with Qt’s concurrency related functionality right away. That, I want to postpone until I have a better understading of concurrency in general, which gap in knowledge will be mitigated as soon as the book I ordered gets released (they say January 2019).
Anyhow, there is quite a lot of reading still ahead of me before I’ll be able to build something of my own out of these, but I plan to make periodic (some sorf of) status updates on the matter, but not sooner than after christmas and new years eve.
Until that time, thanks for stopping by and hopefully next time I’ll be able to post something more tangible.