Johanna Pingel, MathWorks
边缘检测是一种常见的图像处理技术,可用于图像分割、目标检测、Hough线检测等多种应用。利用MATLAB中的“edge”函数有效地实现了边缘检测®,并探索不同的可用参数。
边缘检测是一种图像处理技术,用于在图像中寻找目标的边界。它的工作原理是检测图像亮度的变化。除了创建一个有趣的图像,边缘检测可以是一个伟大的预处理步骤的图像分割。
如果你用边缘创建了一个对象的边界,你可以填充它来检测对象的位置。如果你有两个互相接触的物体,你可以找到它的边缘,利用这个信息来分离物体。你也可以使用边缘来寻找基于纹理的对象,在某些情况下,基于颜色的分割可能不是很好。
让我们来看一个详细的例子,看看如何在MATLAB中使用边缘作为图像预处理技术。目标是用边缘检测车库门上的所有窗户。让我们从搜索文档开始。
我很快了解到在图像处理工具箱中有一个叫做Edge的功能,它可以对我的图像进行边缘检测。我可以简单地调用Edge,或者如果我想要更多的控制,我可以选择边缘检测的方法。让我们在图像上试试这些方法,看看它们的表现如何。
我将首先尝试Prewitt方法,然后是Roberts,然后是Sobel,我想将这些差异并排地可视化。如果我放大并查看这些结果中的差异,我可以看到这些方法之间的细微差异,特别是在角落中,这可能会产生填充这些正方形并找到窗口的效果。
现在,我想填补这些图像中的所有漏洞,并比较这些结果。由于边缘检测算法的不同,一些窗口没有填充。但是我看到最后一个算法确实填补了所有的漏洞,所以这将是我选择的解决这个特殊问题的方法。
为了快速完成算法,我想拍摄我的图像并删除除windows以外的所有内容。使用我们的一个图像处理应用程序,这项任务非常简单。我使用了一个名为图像区域分析器的应用程序,根据某些属性筛选出对象——在本例中,是大小和坚固性。
我强烈推荐大家查看一下我们的图像处理工具箱中的所有图像处理应用程序。最后,我可以展示边缘检测结果。首先,显示原始图像,然后显示灰度化的窗口,证明我们已经成功检测到图像中的所有窗口。
最后一个技巧——如果你在试验边缘检测,你没有得到你想要的结果,还有其他的参数你可以改变,一个流行的是灵敏度。使用默认的灵敏度,我们仍然缺少猫头鹰右侧的很多东西。但我可以快速增加和减少灵敏度,并可视化这些结果。
较低的灵敏度为我提供了前进所需的所有边缘。若要了解更多关于边缘检测的信息,请单击链接,查看更多MATLAB中的示例和文档。
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。