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