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?

回答(1 个)

You can try activecontour(). You can set parameters to control how smooth the boundary is. See attached demo.

4 个评论

Thank you! I would try it
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

请先登录,再进行评论。

类别

提问:

2014-8-22

编辑:

2014-8-26

Community Treasure Hunt

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

Start Hunting!

Translated by