I do a lot of image processing algorithm development (e.g. building custom segmentation algorithms). I started out using Matlab during my DPhil research because (a) it came with very fully featured toolboxes, and (b) most other researchers wrote their code in Matlab too.
Recently I've started making heavy use of Python at work. It's made significant strides in terms of its image processing libraries. I haven't used scikit-image much, but we routinely work with OpenCV at our office, because its feature set is a great complement to Matlab's. However there still remains a lot of really useful 3rd party code that's only accessible with Matlab.
Our current workflow, as a result, is to use Matlab and Python where necessary (because different problems are more tractable with one or the other), and to then stitch them together. This is a bit messy but doable. (I wrote a blog post about it on my site if anyone needs to look into this.)
Bottom line - the Python libraries are fantastic for dabbling with image processing, but for serious work, depending on what you're doing, you may still need to get your hands dirty with Matlab for the time being. This is unfortunate, because Python is free and Matlab is $$$. This will likely continue until a large enough proportion of the academic image processing / computer vision Matlab researcher userbase switches over to Python.
While Matlab still probably comes ahead in image processing, surely in computer vision Python is on top? You mentioned academic research, isn't the majority of modern object recognition, segmentation, etc. done with convnets? Most popular convnet libraries are in Python.
> isn't the majority of modern object recognition, segmentation, etc. done with convnets?
Not at all. Big networks might be popular within particular groups, and they have certainly achieved impressive results on a number of tasks recently, but it's not the solution to every problem. There are a number of other approaches - just browse over the number of subsections on image segmentation on wiki, for example:
No, a majority of the object recognition work I've seen, is done with 'expert' crafted features. Machine learning can for example boost the performance of these features. Another interesting thing is that the machine learning features often require more staff, so they receive a disproportional emphasis.
Python and matlab are good for high level image processing but iterating over the pixels with for loops is incredibly slow. To implement a low level processing running in a reasonable amount of time, compiled languages like C or C++, or even FPGA are much more adapted.
10 comments
[ 3.4 ms ] story [ 39.6 ms ] threadRecently I've started making heavy use of Python at work. It's made significant strides in terms of its image processing libraries. I haven't used scikit-image much, but we routinely work with OpenCV at our office, because its feature set is a great complement to Matlab's. However there still remains a lot of really useful 3rd party code that's only accessible with Matlab.
Our current workflow, as a result, is to use Matlab and Python where necessary (because different problems are more tractable with one or the other), and to then stitch them together. This is a bit messy but doable. (I wrote a blog post about it on my site if anyone needs to look into this.)
Bottom line - the Python libraries are fantastic for dabbling with image processing, but for serious work, depending on what you're doing, you may still need to get your hands dirty with Matlab for the time being. This is unfortunate, because Python is free and Matlab is $$$. This will likely continue until a large enough proportion of the academic image processing / computer vision Matlab researcher userbase switches over to Python.
http://www.hacker-dad.com/integrating-matlab-and-python/
Not at all. Big networks might be popular within particular groups, and they have certainly achieved impressive results on a number of tasks recently, but it's not the solution to every problem. There are a number of other approaches - just browse over the number of subsections on image segmentation on wiki, for example:
https://en.wikipedia.org/wiki/Image_segmentation
or, perhaps more appropriately, take a look at the methods used in recent papers on image segementation:
https://scholar.google.com/scholar?as_ylo=2016&q=%22image+se...
No, a majority of the object recognition work I've seen, is done with 'expert' crafted features. Machine learning can for example boost the performance of these features. Another interesting thing is that the machine learning features often require more staff, so they receive a disproportional emphasis.
I think the code that usually accompanies most cv papers is probably only at most 50% matlab these days.
What is the status of ggplot on python? Is it ready to replace seaborn and matplotlib?
http://ggplot2.org