如何平滑图像边缘

313ビュー(過去30日)
<<
>>我使用:image=imread('手.png');e=边(图像,“canny”);imshow(e);

0のコメント

サインイン发表评论。

採用された回答

萨拉赫丁·侯赛因扎德
編集済み:萨拉赫丁·侯赛因扎德 2015年5月27日
贝纳姆萨拉姆!
我想你的意思是去掉锯齿状的边缘。
你觉得用一个巨大的放射状元素进行扩张,然后再进行变薄怎么样?
我刚才这么做的结果就是
我希望这足够好。我用10像素的radious磁盘做的,你可以减小/增大磁盘大小,得到更好的平滑度。
祝你好运!

3のコメント

贝纳姆·埃马米
贝纳姆·埃马米 2015年5月27日
是的,这是我的答案请在这里发送代码谢谢
萨拉赫丁·侯赛因扎德
亲爱的Behnam,
你可以在MATLAB帮助中搜索我的答案中的关键字。请也看看图像分析师的反应,那就科学得多了。
expanddimage=imexpand(图像,strel('磁盘',10));
thinedImage = bwmorph(dilatedImage,“薄”,信息);
祝你好运!
贝纳姆·埃马米
贝纳姆·埃马米 2015年5月27日
谢谢萨拉赫丁先生

サインイン发表评论。

その他の回答 (1 件)

图像分析员
图像分析员 2015年5月27日
編集済み:图像分析员 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.
请参阅下面评论中的演示和图像-告诉它显示旧评论 因为它现在倒塌了。

19のコメント

表示 16の古いコメント
哈山德苏
哈山德苏 2020年4月8日
嗨,图像分析员,我已经厌倦了使用上面的,它没有显示出任何改进。我也试着改变门槛。这没用。有没有其他方法使边缘光滑和连续?请帮帮我,我是初学者。
下面是你告诉我在那之前试试VS的图片。供参考
图像分析员
图像分析员 2020年4月9日
我不知道该怎么办。也许那些锯齿只是一个像素大?如果是这样,你必须增加像素数,然后模糊和阈值。
哈山德苏
哈山德苏 2020年5月1日7:09
在过去的两个星期里我已经很累了,先生,我还是得不到我想要的东西。让我把我的计划解释清楚。。请告诉我怎么做。
项目: Finding the edges of a door and used those edges as a trajectory for a sensor that checks edges for Gap/Flush.
Problem :我用了萨维茨基·高雷, 博客中的边缘链接和线段拟合:
( https://www.peterkovesi.com/matlabfns/#step2line网站 ). 在这一切之后,我无法得到好的边缘,它要么不光滑,要么有很多不必要的边缘。
我使用的方法: 图像分析员的Savitzky滤波器在三个不同的阈值下进行平滑,得到三幅图像并进行混合。输出再次处理到边缘链接和线段分割程序,我从我们的博客。
问题:
  1. 如何从图像中删除不必要的边。
  2. 如何平滑图像以便我可以使用它进行轨迹
我已经附上了上次输出的图像。

サインイン发表评论。

サインインしてこの質問に回答します。


翻译人