Image Segmentation built into MATLAB?!

Does anyone know if there are any image segmentation methods built into any of the MATLAB toolboxes? I have tried a 'lookfor' on the word 'segment' but haven't found anything interesting...

Answers (2)

Hi Philip, look at the function watershed. In addition, there is a very good example using morphological reconstruction.

doc watershed

Cheers, W.

doc gt
doc lt
doc ge
doc le
doc eq
doc im2bw %Image Processing Toolbox (and doc graythresh)
doc edge %IPT
doc imerode %IPT
doc imdilate %IPT
doc imopen %IPT
doc imclose %IPT
doc bwareaopen %IPT
doc bwmorph %IPT
Just a few of them... If you want real information you'll have to provide images with expected results.

4 Comments

Thanks for your response! I will look at the functions you have suggested. To make my objective clearer, here are the "before" and "after" images that I am hoping to find:
before segmentation:
http://imageshack.us/photo/my-images/220/nhcathedral.jpg/
after segmentation:
http://imageshack.us/photo/my-images/21/nhcathedralsegmented.jpg/
I have used "Statistical Region Merging (SRM)" to segment the image in this example. The problem is that it can take up to 5 minutes to run. The end result however is what is important - where I essentially have 2 classes; the object and the background. This is achieved in SRM by using a low "Q-level" (or threshold)...
Do you want the grassy foreground or just the building?
Ideally, just the building and the sky...
The sky and road are easy: a lower threshold on the blue channel, i.e.:
>> Ibw = I(:,:,3)<90; %blue less than 90
The grass can be done with an AND statement and a lower threshold on the green channel. A few morphological operations would get you what you want.

Sign in to comment.

Asked:

on 24 May 2011

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!