龙空技术网

matlab程序练习——Canny边缘检测

一块二毛三分钱 283

前言:

今天小伙伴们对“轮廓检测matlab”可能比较关注,大家都想要了解一些“轮廓检测matlab”的相关资讯。那么小编也在网上收集了一些关于“轮廓检测matlab””的相关文章,希望你们能喜欢,朋友们一起来了解一下吧!

Canny边缘检测实现效果图:

过程

原始

结果

Canny边缘检测:

Canny是人名,John F. Canny。

作用:图像边缘提取

步骤:

去噪音(如何是彩色图像,首先进行灰度化。):原始数据与高斯平滑模板做卷积,结果得到轻微模糊的图片。目的主要为了整体降低图像噪声,目的是为了更准确计算图像梯度及边缘幅值。

计算图像中的亮度梯度,较高的亮度梯度很可能为边缘。计算图像梯度可以选择算子有Robot算子、Sobel算子、Prewitt算子等。

非极大抑制(边缘细化,通过该步处理边缘像素进一步减少。)

滞后阈值处理(限定多大的亮度梯度来限定边缘)。非最大信号压制以后,输出的幅值如果直接显示结果可能会少量的非边缘像素被包含到结果中,所以要通过选取阈值进行取舍,传统的基于一个阈值的方法如果选择的阈值较小起不到过滤非边缘的作用,如果选择的阈值过大容易丢失真正的图像边缘,Canny提出基于双阈值(Fuzzy threshold)方法很好的实现了边缘选取,在实际应用中双阈值还有边缘连接的作用。双阈值选择与边缘连接方法通过假设两个阈值其中一个为高阈值TH另外一个为低阈值TL则有

a. 对于任意边缘像素低于TL的则丢弃

b. 对于任意边缘像素高于TH的则保留

c. 对于任意边缘像素值在TL与TH之间的,如果能通过边缘连接到一个像素大于TH而且边缘所有像素大于最小阈值TL的则保留,否则丢弃。

求代码,请关注私信给我^-^ ^-^ ^-^

标签: #轮廓检测matlab