Any ideas how I can perform segmentation on this image?

1 view (last 30 days)
I have tried a range of methods such as clustering and thresholding to seperate the white circle from the brown ring without any luck.
Please could someone help?
Pranaya Kansakar
Pranaya Kansakar on 21 May 2020
Edited: Pranaya Kansakar on 21 May 2020
Ideally id like to find the area of the white circle
Also,i think using bwconvhull requires binarization of the image.
I'm stuck at that stage as binarization does a terrible job .

Sign in to comment.

Answers (1)

Ryan Comeau
Ryan Comeau on 29 May 2020
Hey, i've read through the comments, might have a binarization solution for you. The imbinarize function is very elaborate, take a good look through the documentation. Here is what i've done in the past to get the best binarization results.
image=rescale(image,0,1); %matlab loves 0-1 range for binarize don't ask me why lol
If this doesn't work, try a variable sensitivity, adaptive binarization, and create some validation conditions for yourself:
is_done = 0;
sensitivity= 0.1; %tune this to whatever you want
while is_done == 0
BW(i).image = imbinarize(I,'adaptive','Sensitivity',sensitivity);
sensitivity=sensitivity+0.1;%tune this to what you want.
if sensitivity >= 1
is_done == 1
%you then place some validation criterion on you binarization and take which one is the best
Hope this helps,
  1 Comment
Pranaya Kansakar
Pranaya Kansakar on 29 May 2020
Edited: Pranaya Kansakar on 29 May 2020
Hey Ryan
Thanks for the comments!
I'll give them a go!

Sign in to comment.


Find more on Image Processing and Computer Vision in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!