How To Smooth The Image Edge

32 次查看(过去 30 天)
<<
>>i use : image=imread('hand.png'); e=edge(image,'canny'); imshow(e);

采纳的回答

Salaheddin Hosseinzadeh
编辑:Salaheddin Hosseinzadeh 2015-5-27
Salam Behnam!
I guess by smoothing you mean getting rid of the jagged edges.
What do you think of performing a dilation with a huge radial element and then perform thining?
I just did this here is the result
I hope this is good enough. I did it with a disk of 10 pixels radious you maybe reduce/increase the disk size and get a better smoothing.
Good Luck!
  3 个评论
Salaheddin Hosseinzadeh
编辑:Salaheddin Hosseinzadeh 2015-5-27
Dear Behnam,
You can search MATLAB help for the keywords in my answer. Please also have a look at Image Analyst response, that is far more scientific.
dilatedImage = imdilate(image,strel('disk',10));
thinedImage = bwmorph(dilatedImage,'thin',inf);
Good luck!
behnam emami
behnam emami 2015-5-27
Thank You Mr Salaheddin Hosseinzadeh

请先登录,再进行评论。

更多回答(1 个)

Image Analyst
Image Analyst 2015-5-27
编辑:Image Analyst 2016-1-27
One way is to blur the image with imfilter() or conv2() before you do the edge detection. Another way is to smooth the outline coordinates with a Savitzky-Golay filter, sgolayfilt() in the Signal Processing Toolbox.
See demo and image in the comment below - tell it to show the older comments because it's collapsed now.
  19 个评论
Image Analyst
Image Analyst 2020-4-9
I don't know the resolution. Maybe those jaggies are just one pixel big? If so, you'd have to increase the number of pixels then blur and threshold.
Harshan Desu
Harshan Desu 2020-5-1
I have tired working on it for the past two weeks sir, I couldnt still get what I want. Let me explain my project clearly.. Please suggest me how I can work on it.
Project: Finding the edges of a door and used those edges as a trajectory for a sensor that checks edges for Gap/Flush.
Problem: I used Savitzky Golay, Edge Linking and Line Segment Fitting from your blog:
(https://www.peterkovesi.com/matlabfns/#step2line). After all this I am not able to get good edges, its either not smooth or has a lot of unnecessary edges.
Method I used: Image Analyst's Savitzky filter smoothening at three diffrent thresholds, obtain three images and blend them. The output is again processed to Edge linking and line segmenting program which I got from ur blog.
Questions:
  1. How to remove unnecessary edges out of the image.
  2. How to smoothening images so that i can use it for trajectory
I have attached the images of my last output.

请先登录,再进行评论。

Community Treasure Hunt

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

Start Hunting!

Translated by