The Famous “OpenCV via MATLAB Battle” for Image Processing in robotics
Both MATLAB or OpenCV are great for image processing if we talk about object recognition in robotics. But what is still better and in what case? It’s been a hot topic so far and we’ve received a number of requests from our customers asking our opinion about it. So, we will try to give some light to that issue.
Key Reason to choose OpenCV for your robotics project:
- OpenCV is a free and open source software, MATLAB is a licensed software which is pretty costly.
- It offers greater functionality for computer vision compared to Matlab.
- It takes very less memory compared to MATLAB.
- It is portable and it is easy to integrate.
- The C++ OpenCV code runs faster than the Matlab code.
Why you should not choose OpenCV:
- OpenCV has a lot of bugs for image processing. By the way, the OpenCV modified version has fewer bugs.
- It takes time to get comfortable with.
Key Reason to choose MATLAB:
- MATLAB code is easier to understand for the beginners (no import statement and no need to define windows) and it offers a better development environment. For instance, it has several embedded plotting features that help to visualize the algorithm steps or results.
- It is a licensed software, so you may count on less amount of bugs and better functioning.
- MATLAB includes many algorithms not found in OpenCV (either implemented in M-code or a lower-level language).
- It’s great for experimenting: it’s easy to use and it’s flexible, plus it is great for rapid prototyping and rather easy to debug.
Why you should not choose MATLAB:
- MATLAB is licensed and it is pretty costly. Yes, that is a double-edged sword: you need to pay to use it and the price is solid.
- Integration with hardware is not so flexible when compared to OpenCV.
The Bottom Line
Matlab and OpenCV are almost equally suitable for image processing in robotics; both of them have their pros and cons. Matlab is great for trying out ideas, whilst OpenCV is better for production. Still, if you need an industry-grade object recognition, use MATLAB since it is a licensed software. If you want a leisure/learning oriented object recognition, use OpenCV, which is open source.
Anyway, when it comes to choosing the best suiting tool for you, everything depends on your project. If you need a mobile robot with a camera, OpenCV is better as it is portable, but should you need to get started with CV/Image Processing, and there is not so much actual robot to work needed, sticking to MATLAB would be a great option as it offers the “ready, set, go” mode. And sometimes you might even consider using OpenCV with MATLAB together.
Did we miss any pros/cons of the famous “OpenCV via MATLAB Battle”? Please don’t keep them secret!