边缘检测MATLAB.docx
- 文档编号:26227009
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:9
- 大小:536.19KB
边缘检测MATLAB.docx
《边缘检测MATLAB.docx》由会员分享,可在线阅读,更多相关《边缘检测MATLAB.docx(9页珍藏版)》请在冰豆网上搜索。
边缘检测MATLAB
一、图像分割概述
图像分割一般采用的方法有边缘检测(edgedetection)、边界跟踪(edgetracing)、区域生长(regiongrowing)、区域分离和聚合等。
图像分割算法一般基于图像灰度值的不连续性或其相似性。
不连续性是基于图像灰度的不连续变化分割图像,如针对图像的边缘有边缘检测、边界跟踪等算法。
相似性是依据事先制定的准则将图像分割为相似的区域,如阈值分割、区域生长等。
二、边缘检测
图像的边缘点是指图像中周围像素灰度有阶跃变化或屋顶变化的那些像素点,即灰度值导数较大或极大的地方。
边缘检测可以大幅度的减少数据量,并且剔除不相关信息,保留图像重要的结构属性。
边缘检测基本步骤:
平滑滤波、锐化滤波、边缘判定、边缘连接。
说明:
垂直于边缘的走向,像素值变化比较明显,可能呈现阶跃状,也可能呈现屋顶状。
因此,边缘可以分为两种:
一种为阶跃性边缘,它两边的像素灰度值有着明显的不同;
另一种为屋顶状边缘,它位于灰度值从增加到减少的变化转折点。
对于阶跃性边缘,二阶方向导数在边缘处呈现零交叉;
对于屋顶状边缘,二阶方向导数在边缘处取极值。
三、边缘检测算法:
•基于一阶导数:
Roberts算子、Sobel算子、Prewitt算子
•基于二阶导数:
高斯-拉普拉斯边缘检测算子
•Canny边缘检测算法
四、matlab实现
1)基于梯度算子(一阶导数)的边缘检测
BW=edge(I,type,thresh,direction,’nothinning’)
thresh是敏感度阈值参数,任何灰度值低于此阈值的边缘将不会被检测到。
默认值为空矩阵[],此时算法自动计算阈值。
direction指定了我们感兴趣的边缘方向,edge函数将只检测direction中指定方向的边缘,其合法值如下:
可选参数’nothinning’,指定时可以通过跳过边缘细化算法来加快算法运行的速度。
默认是’thinning’,即进行边缘细化。
2)基于高斯-拉普拉斯算子(三阶导数)的边缘检测
BW=edge(I,’log’,thresh,sigma)
sigma指定生成高斯滤波器所使用的标准差。
默认时,标准差为2。
滤镜大小n*n,n的计算方法为:
n=ceil(sigma*3)*2+1。
3)基于Canny算子的边缘检测
BW=edge(I,’canny’,thresh,sigma)
thresh是敏感度阈值参数,默认值为空矩阵[]。
此处为一列向量,为算法指定阈值的上下限。
第一个元素为阈值下限,第二个元素为阈值上限。
如果只指定一个阈值元素,则默认此元素为阈值上限,其0.4倍的值作为阈值下限。
如阈值参数没有指定,则算法自行确定敏感度阈值上下限。
代码:
H=imread('sunflower.jpeg');
b1=rgb2gray(H);
h58=fspecial('gaussia',5,0.8);%高斯滤波器
b=imfilter(b1,h58);
bw1=edge(b,'sobel');%sobel算子
bw2=edge(b,'prewitt');%prewitt算子
bw3=edge(b,'roberts');%roberts算子
bw4=edge(b,'log');%log算子
bw5=edge(b,'canny');%canny算子
figure;imshow(bw1);imwrite(bw1,'bwsobel.jpg');
figure;imshow(bw2);imwrite(bw2,'bwprewitt.jpg');
figure;imshow(bw3);imwrite(bw3,'bwroberts.jpg');
figure;imshow(bw4);imwrite(bw4,'bwlog.jpg');
figure;imshow(bw5);imwrite(bw5,'bwcanny.jpg');
结果:
五、总结分析
1、边缘定位精度方面:
Roberts算子和Log算子定位精度较高。
Roberts算子简单直观,Log算子利用二阶导数零交叉特性检测边缘。
但Log算子只能获得边缘位置信息,不能得到边缘方向信息。
2、边缘方向的敏感性:
Sobel算子、Prewitt算子检测斜向阶跃边缘效果较好,Roberts算子检测水平和垂直边缘效果较好。
Log算子不具有边缘方向检测功能。
Sobel算子能提供最精确的边缘方向估计。
3、去噪能力:
Roberts算子和Log算子虽然定位精度高,但受噪声影响大。
Sobel算子和Prewitt算子模板相对较大因而去噪能力较强,具有平滑作用,能滤除一些噪声,去掉一部分伪边缘,但同时也平滑了真正的边缘,降低了其边缘定位精度。
总体来讲,Canny算子边缘定位精确性和抗噪声能力效果较好,是一个折中方案。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 边缘 检测 MATLAB