How to smooth the rough edge on 2D image?

I tried erode followed by a dilate.
The effect is not good as I want it to be.
I want the edge without any curve. It better can remove the curve and use straight line to represent those curve
I remember that there are some filter for smoothing the edge,right?

2 Commenti

Did you check imfilter and fspecial?
No. thanks for your advice

Accedi per commentare.

Risposte (1)

Image Analyst
Image Analyst il 22 Ago 2014
You can try activecontour(). You can set parameters to control how smooth the boundary is. See attached demo.

4 Commenti

Thank you! I would try it
tabw
tabw il 25 Ago 2014
Modificato: tabw il 26 Ago 2014
I guess it is the same function inside the link below? http://www.mathworks.com/help/images/ref/activecontour.html
But I tried
activecontour(I,mask,300);
it said too many input arguments.
You said I can set some parameters,right?
isn't it like how to set the parameters inside the link?
It's the same function. You forgot to give the error message. Please copy and paste ALL THE RED TEXT. Don't snip or paraphrase like you did. Did my demo run? That should run with no errors whatsoever.
I guess Yes. If I directly run your run, it popped up a interface-liked stuff. it showed the sample image and its histogram. and came up
??? Undefined function or method 'bwconvhull' for input arguments of type
'char'.
Error in ==> Untitled at 59
mask = bwconvhull(mask, 'Union');
So, i tried to follow the example inside the link. But it said too many input arguments

Accedi per commentare.

Richiesto:

il 22 Ago 2014

Modificato:

il 26 Ago 2014

Community Treasure Hunt

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

Start Hunting!

Translated by