Code covered by the BSD License  

Highlights from
Image Morphology

5.0
5.0 | 12 ratings Rate this file 170 Downloads (last 30 days) File Size: 462 KB File ID: #23697
image thumbnail

Image Morphology

by

Brett Shoelson (view profile)

 

14 Apr 2009 (Updated )

An interactive environment for morphologically operating on images.

Editor's Notes:

This file was selected as MATLAB Central Pick of the Week

| Watch this File

File Information
Description

The Image Morphology app is an interactive exploratory environment, with which you can try different morphological operations and structuring elements on your image.
This app supports most morphological operations, including those (like BWHITMISS) that can take multiple STRELS. All STRELS, including arbitrary ones, are now supported. You can easily see the effects of changing the size or shape of your STREL, or of trying different morphological operations. You can also "activate" the modified image to string operations.

The Image Morphology app is a REPLACEMENT FOR MORPHTOOL, which has been shared on the File Exchange since 2007. This version fixes several minor (but long-standing) bugs, and addresses changes needed for R2014b readiness. Image Morphology (as an app, or as function |imageMorphology|) should be more stable and less buggy than previous versions.

Comments/suggestions/collaborations welcome.

Acknowledgements

This file inspired Segment Tool: An Interactive Gui For Segmenting Images and Image Morphology Tutorial.

Required Products Image Processing Toolbox
MATLAB release MATLAB 8.4 (R2014b)
MATLAB Search Path
/
Tags for This File   Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (46)
29 Dec 2014 rabeeah

hi,
i am getting the following error when i run the tool:
??? Undefined function or method 'isgraphics' for
input arguments of type 'double'.

Error in ==> imageMorphology at 107
if isgraphics(imageMorphologyParent,'figure')

Comment only
08 Oct 2014 David Fernández

Excelente aplicación para la enseñanza de los conceptos de morfología básica.

09 Nov 2013 Zafer

Zafer (view profile)

 
21 Apr 2013 Bi

Bi (view profile)

 
21 Apr 2013 Bi

Bi (view profile)

 
27 Feb 2013 Brett Shoelson

Brett Shoelson (view profile)

@Amarjot:
In R2009b, we allowed the use of a tilde to ignore unwanted function outputs:

[~,strelButtons,strelSliders] = StrelTool(strel1Parent);

If you're using an earlier version, you should 1) replace the tilde with a dummy variable (like "JUNK"); and 2) update your MATLAB!

Cheers,
Brett

Comment only
27 Feb 2013 Vinny

Vinny (view profile)

Brett, on an unrelated note
I tried contacting you but didnt get a reply. where can I find the demo files for your webinar on medical image processing ?

Comment only
27 Feb 2013 Amarjot

Amarjot (view profile)

Hi,
??? Error: File: MorphTool.m Line: 218 Column: 3
Expression or statement is incorrect--possibly unbalanced (, {, or [. can you please help me correct itt

Comment only
26 Feb 2013 Brett Shoelson

Brett Shoelson (view profile)

@Vinny:
narginck was added to MATLAB in R2011b. You can safely comment out that line, or replace it with:
nargchk(0,2,nargin)

(But you should upgrade! :) )
Cheers,
Brett

Comment only
26 Feb 2013 Vinny

Vinny (view profile)

im getting the following error (using matlab R2011a) :
"??? Undefined function or method 'narginchk' for input arguments of type 'double'.

Error in ==> MorphTool at 40
narginchk(0,2);"

22 Feb 2013 Brett Shoelson

Brett Shoelson (view profile)

@srinivasarao:
Sorry...not sure what paper you're talking about. This GUI agglomerates many of the morphological operations enabled through the Image Processing Toolbox, and allows interactive manipulation of all of their input parameters. There's no single paper to share.
Brett

Comment only
22 Feb 2013 srinivasarao

hi Brett,
can u send me the base paper

Comment only
15 Feb 2013 Brett Shoelson

Brett Shoelson (view profile)

I should clarify my previous comment. BWHITMISS does not _require_ two strels, but it does allow a 2-strel syntax.
Brett

Comment only
14 Feb 2013 Brett Shoelson

Brett Shoelson (view profile)

Hi Anoosha,
Thanks for the rating! Some morphological operations (notably here, BWHITMISS) require the specification of two structuring elements. For the purposes of MorphTool, SE1 is read from StrelTool1, and SE2 is read from StrelTool2.
Cheers,
Brett

Comment only
14 Feb 2013 Anoosha Papireddy

Hi Brett,
Could you please tell me what the difference between strelTool and strelTool2 is?

14 Jul 2012 Brett Shoelson

Brett Shoelson (view profile)

Caleb: I believe that the zip file creates a subdirectory that contains the helper files (including tabPanel). Please either drag them out of that folder, or add the folder to your MATLAB path and try again!

Comment only
13 Jul 2012 Caleb

Caleb (view profile)

I'm using R2011b and I'm getting "Undefined function 'tabPanel' for input arguments of type 'cell'.

Comment only
25 May 2012 Chien-Chun Yang  
29 Feb 2012 Brett Shoelson

Brett Shoelson (view profile)

Hi Bella,
Can you tell me how to recreate the error you're seeing? I never assigned a callback to a uipanel, nor have I seen that particular error. Is it reproducible? How can I trigger it (so I can figure out what's going on)? And what does "I have put the files outside the folder" mean? (I wonder if this is a path issue.)
Cheers,
Brett

Comment only
29 Feb 2012 Bella Sam

Hello, I am using 2009a, and i have put the files outside the folder..i have some problem and didn't know what these means::

??? Error using ==> get
There is no 'Callback' property in the 'uipanel' class.

Error in ==> iptaddcallback at 71
current_callback = get(h, callback);

Error in ==> MorphTool at 648
iptaddcallback(strelButtons(ii),'Callback',@morphOp);

Comment only
27 Feb 2012 Brett Shoelson

Brett Shoelson (view profile)

Parth,
Can you give me some details about your MATLAB? Do you have the Image Processing Toolbox? What version of MATLAB are you using?
Thanks...Brett

Comment only
23 Feb 2012 Parth

Parth (view profile)

hey there m gettin an error as this one:

??? Undefined command/function 'iptchecknargin'.

Error in ==> MorphTool at 24
iptchecknargin(0,2,nargin,mfilename);

Comment only
28 Oct 2011 recep

recep (view profile)

thanks alot it's work

25 Oct 2011 Brett Shoelson

Brett Shoelson (view profile)

recep, Kelly, et al: I see what's happening now. I provided auxiliary files in a folder, assuming that they would be put on your MATLAB path. You can either add those folders manually to the path, or drag the files out of the folders, or issue this (or equivalent) command:

addpath(genpath(fileparts(which('MorphTool.m'))))

Let me know if that addresses the issue, please.

Comment only
25 Oct 2011 Brett Shoelson

Brett Shoelson (view profile)

@recep and Kelly: Would you please verify that you have the latest version, and that it came with the TabPanel function? If not, please grab the new version. If so, it would help if you could tell me reproduction steps that trigger the problem.
Thanks, Brett

Comment only
25 Oct 2011 recep

recep (view profile)

I use 2009a but I give problem like it:
??? Undefined function or method 'tabPanel' for input arguments of
type 'cell'.

Error in ==> MorphTool at 177
[mainTabHandle,tabCardHandles,tabHandles] = ...

Comment only
27 Sep 2011 Brett Shoelson

Brett Shoelson (view profile)

Please try again; I believe that the current version includes all the files you need to run this. (Please let me know if there are any additional issues with MorphTool...).
Thanks, Bret

Comment only
23 Sep 2011 Kelly

Kelly (view profile)

Thanks Brett you are right I am using 2009a and the 'junk' insert fixed that error... however now I am getting a different error.

??? Undefined function or method 'tabPanel' for input arguments of type 'cell'.

Error in ==> MorphTool at 177
[mainTabHandle,tabCardHandles,tabHandles] = ...

Comment only
23 Sep 2011 Brett Shoelson

Brett Shoelson (view profile)

@Kelly and YAZ (and others):

Thanks to you both. I just figured out that you are using a version of MATLAB that predates R2009b. (Correct?) I use tildes to ignore unwanted arguments; that capability was introduced in '9b.) TO FIX THIS: Either upgrade to a newer MATLAB ;), or replace the tildes in my code with some word like "junk." That should do it!

Comment only
21 Sep 2011 Kelly

Kelly (view profile)

I have the same error as YAZ
??? Error: File: MorphTool.m Line: 185 Column: 3
Expression or statement is incorrect--possibly unbalanced (, {, or [.

I did not backspace or delete anything and tried re-downloading it with the same error.

Comment only
06 Sep 2011 Brett Shoelson

Brett Shoelson (view profile)

@YAZ
Is it possible that you accidentally backspaced and deleted something? I don't see any indication of an unbalanced parenthesis in that file. Would you re-download and verify the error, and let me know if you still see it, please?
Thanks,
Brett

Comment only
01 Sep 2011 YAZ

YAZ (view profile)

hi, i have this message :
"??? Error: File: MorphTool.m Line: 185 Column: 3
Expression or statement is incorrect--possibly unbalanced (, {, or [."

Comment only
19 Aug 2011 Brett Shoelson

Brett Shoelson (view profile)

Bojan, Jonas: Should be good to go now...please re-try! Thanks for the heads up.

Comment only
19 Aug 2011 Brett Shoelson

Brett Shoelson (view profile)

Give me a few minutes, Bojan and Jonas. I accidentally omitted that file when I updated. Working on it.

Comment only
19 Aug 2011 Jonas

Jonas (view profile)

Same error here as Bojan - StrelTool seems to be missing from the package, which makes the potentially awesome submission unusable.

Comment only
19 Aug 2011 Bojan

Bojan (view profile)

I'm having a problem running this as it requires StrelTool. Is StrelTool available on file exchange or part of another toolbox?

Comment only
18 Jan 2011 W

W (view profile)

Great!Thanks!

10 May 2010 Brett Shoelson

Brett Shoelson (view profile)

@Nayanjyoti: You are correct: the file is 'cameraman.tif'; my code should reflect that. My windows machine has case-insensitive filename matching, which allowed me to be sloppy. Your Unix environment (correct?) is not. I'll modify the file.

Comment only
30 Apr 2010 Nayanjyoti

Hi Brett, I tried using a maci64 and glnxa64 and my experience was that when you do
>> I = imread('Cameraman.tif');

you get the following error
??? Error using ==> imread at 372
File "Cameraman.tif" does not exist.

whereas,
>> I = imread('cameraman.tif');
works fine.

Comment only
27 Apr 2010 Brett Shoelson

Brett Shoelson (view profile)

@Nayanjyoti: Thanks for the feedback; I plan to continue ot expand MORPHTOOL. Actually, though (on a PC at least), imread is insensitive to the case of an input image name. So both "imread('Cameralman.tif')" and "imread('cameraman.tif')" work. (IMREAD calls FOPEN under the hood.) Do you see different behavior?

Comment only
26 Apr 2010 Nayanjyoti

In line 11
"imgName = 'Cameraman.tif';" needs to be replaced with
"imgName = 'cameraman.tif';"

Comment only
26 Apr 2010 Nayanjyoti

Simply mind-blowing. Would like to see it include more functionality.

11 Apr 2010 Brett Shoelson

Brett Shoelson (view profile)

Sami,
Thanks for the rating. I programmed the GUI manually, without the use of GUIDE. You don't need a .fig file to run it. Just issue the command 'morphtool' (or 'morphtool(myimage)') to run it.
Cheers,
Brett

Comment only
10 Apr 2010 Samiov

Samiov (view profile)

it looks great...but how make it works??? the .fig file isn't in the zipfile!! or I just must be inspired from the .m file???

18 Sep 2009 Diego Barragán

Diego Barragán (view profile)

 
27 May 2009 ababacar kane

important pour mon projet

Comment only
Updates
05 Sep 2009

9/5/2009 Re-zipped with missing functions StrelTool and expandAxes.

09 Sep 2009

09/09/2009 Provides missing functions/subfunctions.

19 Aug 2011

Fixed stability/responsiveness issue. Also adds support for a number of different morphological operations.

19 Aug 2011

Updating screenshot.

19 Aug 2011

Including omitted StrelTool file.

22 Aug 2011

Changed the description only.

26 Sep 2011

Includes a missing subfunction.

09 Aug 2012

Flattened directory structure to avoid confusion. Replaced deprecated argument-checking functions, and added file-loading functionality when MorphTool is a child of a figure.

12 Sep 2012

Updated to include an App file for R2012b.

11 Mar 2013

Added in sound files.

11 Mar 2013

Several improvements/updates, including better loading of new images (from file or workspace); default 0-sized strel (this is desirable for large images); and incorporation of new ExpandAxes, which now allows right-click exporting of images!

07 Oct 2014

Users of MorphTool may want to consider upgrading to ImageMorphology. I addressed many small issues in this version.

Contact us