First Impressions: Practical Python and OpenCV

Over the last month I have been working through two programming courses. In this post I’ll discuss my first impressions of Adrian Rosebrock’s Practical Python and OpenCV and accompanying video tutorials.

What’s Inside

The Quickstart package I bought included:

  • Pre-configured Ubuntu virtual machine (with Python and OpenCV)
  • Practical Python and OpenCV, 3rd edition (ebook)
  • OpenCV Case Studies (ebook)
  • 9 video with 2+ hours of tutorials
  • Source code listing, sample images, and datasets used in both books
  • Access to a web site with supplemental materials including additional reading, scripts, and quizzes

First Impressions

Pre-configured Virtual Machines

In my post from last February, I said I “…was able to set an OpenCV environment without much trouble.” Okay, that was an understatement. Looking back I recall I had ended up downloading source code and doing my own builds of several required Python libraries to get OpenCV working due to some environment configuration issues specific to my Linux box.

In the year since then, the aforementioned Linux box died and I had to rebuild it from back-ups. I ultimately decided to put my OpenCV work on the back burner and moth-balled the project. Given the prospect of recompiling libraries, you can see why I was excited to use a pre-configured virtual machine (VM). I have use VMs at work and they are often a huge time-saver. Further still, they are portable across operating systems, which made it possible to easily create an OpenCV environment on my speedier Windows laptop rather than on my aging Linux box.

All of that said, it was very simple to set up the VM with the provided instructions. It’s a good thing too, because shortly after I got set up and began my first lesson, Rosebrock sent an email announcing the release of the 4th edition of his books and an updated VM with support for the newest version of OpenCV 4 and Python 3. I downloaded the new ebooks and VM, reset my environment, then was back up and running in under an hour.

eBooks, Videos, and Code Samples

In the last two weeks I have made it through five chapters and three videos, and I am impressed by what I have learned so far. Much like the tutorials on Rosebrock’s Pyimagesearch blog, the ebooks are well written and do an excellent job of breaking down technical concepts into simple, easy to understand language. The videos are equally helpful for those who prefer a visual style of learning. I found myself alternating between the two formats as I typed out the code for each exercise line-by-line to ensure I achieved the same results as shown. I then made my own variations to apply each exercise to help reinforce what I learned, which I think is critical to helping retain what I learn. This process was slow and tedious at times, but I found it helped build my understanding of how Python works and how to troubleshoot my code before I start any really heavy lifting with the OpenCV libraries.

Supplemental Materials

So far the supplemental materials have been worth the read, taking my understanding of each chapter to a deeper level. I fell into a few technical rabbit holes along the way, but overall I recommend anyone who takes the course check them out before moving to the next chapter.

Next Steps

Chapter 6: Image Processing is next and I am excited to dig into it. I plan to work through the next few chapters and provide another update here later in March.

In the meantime, my next post will be about my recent experience completing the React for Everyone course from Level Up Tutorials.