It’s been a long time coming, but OpenCV 3.0 has finally been released!
This update is definitely one of the most extensive overhauls to the library in recent years, and boasts increased stability, performance increases, and OpenCL support.
But by far, the most exciting update for us in the Python world is:
Python 3 support!
After years of being stuck in Python 2.7, we can now finally use OpenCV in Python 3.0! Awesome news indeed!
So you might be asking “What does this mean for PyImageSearch?”
Are we dropping OpenCV 2.4.X immediately and moving to OpenCV 3.0? Are we officially done with Python 2.7?
The short answer is no.
OpenCV 3.0 being released is awesome news — but this is also a transition time for the computer vision community. Some of us will be dependent on the previous OpenCV 2.4.X version. Others will be dashing to grab the latest bleeding-edge copy of v3.0. And perhaps others of us won’t really care what version we are using provided that our code executes and runs as expected.
Because of these variety of reasons, moving forward I will be writing content related to both OpenCV 2.4.X and OpenCV 3.0.
I think it would be a huge mistake to abandon writing content on OpenCV 2.4.X right now. It’s older. It’s more established. And it’s more widely used.
However, it would be an equally huge mistake to ignore OpenCV 3.0 until it matures and gets a few minor releases under its belt. OpenCV 3.0 is indeed the future — and we need to treat it as such.
Because of this, I have come up with the following plan:
We’ll be doing a mix of OpenCV 2.4.X and OpenCV 3.0.
OpenCV 3.0 is brand new. It’s shiny. It’s sexy. We’ll definitely be taking off the wrapper and having some fun.
But we’ll still be doing a fair amount of tutorials in OpenCV 2.4.X. Remember, OpenCV 2.4.X is still the de facto library for computer vision and image processing and will remain so until the v3.0 matures a little bit and obtains a substantial adoption rate.
All new blog posts will be marked with OpenCV + Python versions.
All new articles, tutorials, and blog posts published on PyImageSearch will include both the assumed OpenCV version and Python version to ensure that you know which development environment we are using.
You can also expect some OpenCV 3.0 install tutorials on a variety of platforms coming soon.
All old blog posts will also be marked with OpenCV + Python versions.
Just like all new posts will list the assumed versions of OpenCV and Python, I will also be going back and updating all old blog posts to include the required versions of OpenCV and Python.
This change will not happen overnight, but I’ll be updating a few older articles per week.
The updated posts will include a section like this:
What about Practical Python and OpenCV + Case Studies?
You might be wondering about my books, Practical Python and OpenCV + Case Studies — will they be updated to OpenCV 3.0?
The answer is YES, Practical Python and OpenCV + Case Studies will absolutely be updated to cover OpenCV 3.0.
I have already forked the example code from the books and am updating the code examples.
The first update to the book will include revised source code for those who want to run the provided examples using Python 3 and OpenCV 3.0.
The second update will then transition the actual code explanations in the book to OpenCV 3.0.
I will likely be providing both a 2.4.X and 3.0 version of the book.
Regardless, the update OpenCV will in no way harm the integrity of Practical Python and OpenCV + Case Studies. Definitely consider purchasing a copy if you want to get up to speed on OpenCV. As I promised above, the book will be updated to cover OpenCV 3.0 as well.
There will be a transition period.
As I mentioned in the sections above, we will be doing a mix of OpenCV 2.4.X and OpenCV 3.0 articles and tutorials.
In the beginning most of these tutorials will be using the 2.4.X version.
But as the OpenCV 3.0 matures, we’ll mature with it and start introducing more and more v3.0 tutorials.
Exactly how long will the transition period take?
It’s hard to put an exact timeline on the transition period since it depends on a variety of factors:
It depends on how willing developers and programmers are to update to a new version of OpenCV and risk legacy code breaking (which based on my initial tests, that risk is very high).
It depends on the actual demand of OpenCV 3.0 tutorials.
And it depends on your feedback
My guess is that it could take up to 6-12 months before we use OpenCV 3.0 regularly on PyImageSearch, but who knows — my estimate could be way off. It could be shorter. And it could be longer.
Realistically, my gut tells me that we won’t be fully transitioning over until the 3.1 release. Remember, PyImageSearch is a teaching blog, and thus it’s very important that all of the code examples work as advertised.
Either way, my promise to you is that I’ll evolve the PyImageSearch blog as OpenCV evolves — and we’ll continue to ensure that PyImageSearch is the go to website to learn computer vision + OpenCV.
If anything, the only real change you’ll see is more posts from me.
I think the only big change you’ll see on the PyImageSearch blog is perhaps more blog posts.
Each Monday I’ll continue publishing the big blog post for the week. And then you might see another short blog post later in the week that details a particular caveat of OpenCV 3.0. As I said, this will be a transition period and each post published will detail the assumed Python and OpenCV versions.
So what do you think?
Do you like the plan? Hate the plan?
Leave a comment or shoot me a message — your input and response is what makes this blog possible!