MATLAB Answers

DIPimage – What is your experience?

20 views (last 30 days)
Marco
Marco on 9 Dec 2013
Answered: Cris Luengo on 6 Oct 2014
I found DIPimage to be an interesting tool for a beginner to get up and running with some image processing tasks. Actually, as a beginner, I feel quite enthusiastic about it. But as a beginner I am at the same time unsure, if its conceptual use of the dip_mage Object and resultant bidirectional incompatibility with original MATLAB and MATLAB Image Processing Toolbox functions (and maybe other functions from the FileExchange ?) would eventually thwart my ambitions to learn MATLAB and image processing in an all-purpose manner.
What is your opinion about DIPimage? Is the dip_image Object use and DIPimage as a whole package a nice enhancement of MATLAB which mainly offers a smart set of very helpful image processing routines, or do you more see it as a losing game for the versatile image processing public and only helpful for students/scientists in the direct sphere of the DIPimage developer group?
[EDIT:] My interest is to run image analysis on more or less simple microscopy images by optimizing the algorithm with MATLAB as my 'rapid-prototyping' environment, and taking advantage of readily available image processing functions from a toolbox, or from some other function library, as far as possible. I found as an alternative to the DIPimage use, that accessing from MATLAB the OpenCV or ITK libraries could also be a smart solution. But I don´t have experience how easy this would be, if this would need very enhanced programming skills. Would this be as well a feasible approach for a microscopist just starting with programming? I at the moment do not even understand if mentioned MEX functionality used in this context is part of my core MATLAB license, or if this would then need me to purchase some MEX toolbox, or first to study for a year how to use a C++ compiler, or whatever…
So, my question aims to find out, if ‘MATLAB + DIPimage’ is a good starter kit for me, or if I should better focus on a different combination of available packages right away.
PS: I prefer for economic reasons to stay - if possible - with the core MATLAB product only, without having to pay for further toolboxes: I might not always work at a place where I am given the needed licenses, but may have to purchase them in future privately in order to stay well connected to the image analysis topic. I experienced already that my purchased Mathworks Image Processing Toolbox from an earlier version does not run with my newer MATLAB core version anymore. Thus, updating MATLAB will obviously always request me to update all toolboxes synchronously, and that would make it very expensive if now building too much on what my current company offers me without considering a less luxury future.

  0 Comments

Sign in to comment.

Accepted Answer

Cris Luengo
Cris Luengo on 6 Oct 2014
Dear Marco,
I am the main developer of DIPimage. Thank you for the nice words.
I understand hesitation among people used to the Image Processing Toolbox from the MathWorks, precisely because of the dip_image object. Once people learn that you can use any MATLAB array as input to DIPimage functions, and easily convert dip_image objects back to MATLAB arrays using the DOUBLE or DIP_ARRAY functions, they see that it is not difficult to combine DIPimage with other toolboxes.
However, when you say that you fear it might "thwart [your] ambitions to learn MATLAB and image processing in an all-purpose manner", I'm rather surprised. DIPimage integrates nicely with MATLAB, and you'll find yourself writing extensive code in M-files before you know it (you'll use the GUI less and less, as you get familiar with the commands, and eventually you'll no longer open it up at all, as I do). As for learning image processing, I think you can do that with any software, but you're less likely to get frustrated and quit if you're using a software that doesn't put unnecessary obstacles in your way.
We designed DIPimage as a tool to teach image analysis to people with little programming knowledge, and as a tool for ourselves to do research in image analysis. I know very few tools that support such a broad range of user skills, and is one of the things in DIPimage that I am really proud of.
So yes, it is meant as a tool for "a fast learning programmer who aims to anyway transfer all rapid-prototyping MATLAB stuff later on to another programming language and then going to include the DIPlib library", but also as a tool for "someone who expects to never move away from the MATLAB environment". For example, we used DIPimage and MATLAB (and the MATLAB Compiler) to write a program that analyses 300-500 MB 3D images from a 2-photon microscope; I used MATLAB to direct eight copies of this program on a mini-compute cluster to process many of these images over night ( http://bdtnp.lbl.gov/Fly-Net/bioimaging.jsp?w=analysis ). I never moved away from MATLAB! :)

  0 Comments

Sign in to comment.

More Answers (1)

Image Analyst
Image Analyst on 9 Dec 2013
I haven't used DIP image http://www.cb.uu.se/~cris/blog/index.php/archives/607, but Cris is a very sharp guy so I would guess it's very good. I don't know of any other add-on like it. So, if if has some built in functionality that is useful to you and efficient and productive to use, then use it. If not, then write your own or check elsewhere for alternatives, like the File Exchange or the web.

  1 Comment

Marco
Marco on 10 Dec 2013
There is absolutely no doubt about the very high professional quality of DIPimage. The doubts are, if its conceptual deviation from the MATLAB design due to the introduction of a “dip_image Object” at the core of DIPimage image processing operations is on the long run an easily reusable accompaniment, or a difficult to discard concept once bound to it.
Maybe DIPimage is meant as a diving board for a fast learning programmer who aims to anyway transfer all rapid-prototyping MATLAB stuff later on to another programming language and then going to include the DIPlib library? Maybe DIPimage is not meant for usage by someone who expects to never move away from the MATLAB environment?
Would the combination of the MATLAB core and OpenCV or ITK libraries avoid those “object” hassles as introduced by DIPimage? Would it impact the beginner’s rapid-prototyping by entailing other difficult for the beginner to overcome obstacles?
Is there any recommendable alternative to the MATHWORKS Image Processing Toolbox for someone who expects to most likely never move on from the MATLAB environment but still wants to take advantage of accessing some bigg image processing function library, much bigger than the MATHWORKS IPT provides it?

Sign in to comment.

Sign in to answer this question.