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