sharpening or cleaning this binary mask

6 views (last 30 days)
rsnandi
rsnandi on 31 Jul 2020
Commented: Image Analyst on 7 Aug 2020
Hi, Image Analyst.,Could you please help me in sharpening or cleaning this binary mask please which is attached here. I have tried alot and got this refinement only. please suggest something.
  2 Comments
jonas
jonas on 31 Jul 2020
I am not image Analyst, but I'm guessing you will get a better answer if you describe your desired image. Personally I don't see a lot of noise in your image. Do you want smoother edges? Do you want to fill the small black areas inside the main blob?
rsnandi
rsnandi on 1 Aug 2020
Thanks Jonas , yes I want to smoother edges and fill the black area inside the main blob. Morphological operations not doing good. They deform the main blobs. Please suggest something. Thanks

Sign in to comment.

Answers (1)

Image Analyst
Image Analyst on 1 Aug 2020
You could blur the image and threshold it.
windowWidth = 7; % Whatever - bigger gives more smoothing, experiment with different values.
kernel = ones(windowWidth, windowWidth) / windowWidth^2;
smoothBW = conv(single(bw), kernel, 'same') > 0.5;
Or you could use a savitzky Golay filter to smooth the boundaries and then use poly2mask on the smoothed boundaries. Demo attached.
Or you could use activecontour(). Demo attached.

Community Treasure Hunt

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

Start Hunting!