边缘检测算子的边缘提取及Hough变换.docx
- 文档编号:24470938
- 上传时间:2023-05-27
- 格式:DOCX
- 页数:10
- 大小:110.36KB
边缘检测算子的边缘提取及Hough变换.docx
《边缘检测算子的边缘提取及Hough变换.docx》由会员分享,可在线阅读,更多相关《边缘检测算子的边缘提取及Hough变换.docx(10页珍藏版)》请在冰豆网上搜索。
边缘检测算子的边缘提取及Hough变换
题目边缘检测算子的边缘提取及Hough变换
学院:
信息科学与技术学院
专业:
控制科学与工程
学生:
XX
指导教师:
XXX
2014年12月14日
1、边缘检测算子简介
图像边缘(或边沿)是指周围像素灰度有阶跃性变化或“屋顶”变化的那些像素的集合。
在图像处理中通过边缘算子能够较好的提取出数字图像的边缘,常用的边缘检测算子主要分为以下几类:
一、基于一阶导数的边缘检测算子包括Roberts算子、Sobel算子、Prewitt算子、Kirsch算子等,在算法实现过程中,通过2x2(Roberts算子)或者3x3模板作为核与图像中的每个像素点做卷积和运算,然后选取合适的阈值以提取边缘。
二、基于二阶导数的边缘检测算子,该算子对噪声敏感。
一种是二阶微分的拉普拉斯边缘检测算子,另一种改进方式是先对图像进行平滑处理,然后再应用二阶导数的边缘检测算子,其代表是LOG算子。
前边介绍的边缘检测算子法是基于微分方法的,其依据是图像的边缘对应一阶导数的极大值点和二阶导数的过零点。
三、Canny边缘检测算子,它不是通过微分算子检测边缘,而是在满足一定约束条件下推导出的边缘检测最优化算子。
2、不同边缘算子检测边缘分析
本文基于Matlab编程实现不同边缘检测算子对一幅包含两个目标的图像进行边缘提取,原始图像如图2.1所示。
Roberts边缘检测算子是一种利用局部差分方法寻找边缘的算子,其采用的是对角方向相邻两像素值之差;Sobel边缘算子所采用的算法是先进行加权平均,然后进行微分运算;Prewitt边缘检测算子就是一种利用局部差分平均方法寻找边缘的算子,其先求平均,再求差分,即利用所谓的平均差分来求梯度;拉普拉斯边缘检测算子正是对二维函数进行二阶导数运算的标量算子;Canny边缘检测算子通过中心边缘点为算子与图像的卷积在边缘梯度方向上的区域中的最大值在梯度方向上判断此点强度是否为其领域的最大值来确定该点是否为边缘点。
图2.1原始图像
2.1Roberts算子提取边缘图像
图2.2Roberts算子边缘检测图像
2.2Sobel算子提取边缘图像
图2.3Sobel算子边缘检测图像
2.3Prewitt算子提取边缘图像
图2.4Prewitt算子边缘检测图像
2.4Laplace算子提取边缘图像
图2.5Laplace算子边缘检测图像
2.5Log算子提取边缘图像
图2.6Log算子边缘检测图像
2.6Canny算子提取边缘图像
图2.7Canny算子边缘检测图像
3、Hough变换的边缘提取
Hough变换利用图像空间和参数空间的点-线对偶性,将图像空间中具有一定关系的像素点在参数空间中进行聚集,通过在参数空间进行简单的累加和统计,找出参数空间中累加器的峰值点,进而确定出图像空间中特定几何特征的相关参数。
图像空间中的任意一个点映射到参数空间中是一条直线,图像空间中位于同一直线上的点映射到参数空间中是一组相交于同一点的直线,反过来,参数空间中相交于同一点的所有直线,在图像空间中与之对应的是在同一直线上的一组点。
Hough变换提取边缘的主要步骤为:
一、读入一副图像,将读入图像转为二值化图像,遍历整幅图像,判断每一个像素点是否为白点;二、对每一个白点进行处理,按照相应的量化数值在变换域累加器数组中的相应位置上加1;三、遍历累加器数组,每找到一个局部最大值,判断该局部最大值是否大于所设置的阈值,若是,则将该最大值及其位置存放在上述定义的数组的一个元素中,并将该局部最大值附近的点清零,以便寻找下一个局部最大值,直到遍历整个数组找到的最大值小于设置的阈值为止。
图3.1Hough变换边缘检测图像
4、不同边缘检测算子的比较分析
从本文的分析结果来看,Roberts算子是2x2算子,对具有陡峭的低噪声图像响应最好。
Sobel算子、Prewitt算子是3x3算子,对灰度渐变和噪声较多的图像处理得较好。
使用两个掩模板组成边缘检测器时,通常取较大的幅度作为输出值。
这使得它们对边缘的走向有些敏感。
取它们的平方和的开方可以获得性能更一致的全方位响应。
这与真实的梯度值更接近。
值得注意的是3x3的Sobel算子和Prewitt边缘算子可扩展成八个方向,并且可以像使用Kirsch算子一样获得边缘方向图。
Laplace算子与Log算子对屋脊型边缘的处理效果比较好,Log算子与Laplace算子的区别在于Log算子引入高斯函数,先对图像做平滑滤波处理。
Hough变换对直线型的边缘提取效果较好,而对其他边缘提取效果不理想。
附录1
I=imread('Test.bmp');
J=rgb2gray(I);
figure
(1),
subplot(1,2,1),imshow(I),title('原始彩色图像');
subplot(1,2,2),imshow(J),title('原始灰度图像');
J1=edge(J,'Roberts');
figure
(1),
subplot(1,2,1),imshow(J),title('原始灰度图像');
subplot(1,2,2),imshow(J1),title('Roberts算子提取边缘图像');
J2=edge(J1,'sobel');
figure
(2),imshow(J2),title('Sobel算子提取边缘图像');
J3=edge(J,'prewitt');
figure(3),imshow(J3),title('Prewitt算子提取边缘图像');
J4=edge(J,'log');
figure(4),imshow(J4),title('log算子提取边缘图像');
J5=edge(J,'canny');
figure(5),imshow(J5),title('canny算子提取边缘图像');
h=fspecial('laplacian');%产生一个laplace算子
J6=imfilter(J,h);%拉普拉斯检测边缘图像
figure(6),imshow(J6),title('laplace算子提取边缘图像');
附录2
I=imread('Test.bmp');
I=rgb2gray(I);
[m,n]=size(I);
I=im2double(I);
im=zeros(m,n);
fori=3:
m-2
forj=3:
n-2%处理领域较大,所以从图像(3,3)开始,在(m-2,n-2)结束
l(i,j)=-I(i-2,j)-I(i-1,j-1)-2*I(i-1,j)-I(i-1,j+1)-I(i,j-2)-2*I(i,j-1)+16*I(i,j)-2*I(i,j+1)-I(i,j+2)-I(i+1,j-1)-2*I(i+1,j)-I(i+1,j+1)-I(i+2,j);%LoG算子
end
end
[m,n]=size(l);
fori=2:
m-1
forj=2:
n-1
y(i,j)=l(i-1,j-1)+l(i-1,j)+l(i-1,j+1)+l(i,j-1)+l(i,j)+l(i,j+1)+l(i+1,j-1)+l(i+1,j)+l(i+1,j+1);
y(i,j)=y(i,j)/9;%LoG算子提取边缘后,对结果进行均值滤波以去除噪声,为下一步hough变换提取直线作准备
end
end
q=im2uint8(y);
[m,n]=size(q);
fori=1:
m
forj=1:
n
ifq(i,j)>70;%设置二值化的阈值为70
q(i,j)=255;%对图像进行二值化处理,使图像边缘更加突出清晰
else
q(i,j)=0;
end
end
end
%Hough变换检测直线,使用(a,p)参数空间,a∈[0,180],p∈[0,2d]
a=180;%角度的值为0到180度
d=round(sqrt(m^2+n^2));%图像对角线长度为p的最大值
s=zeros(a,2*d);%存储每个(a,p)个数
z=cell(a,2*d);%用元胞存储每个被检测的点的坐标
fori=1:
m
forj=1:
n%遍历图像每个点
if(q(i,j)==255)%只检测图像边缘的白点,其余点不检测
fork=1:
a
p=round(i*cos(pi*k/180)+j*sin(pi*k/180));%对每个点从1到180度遍历一遍,取得经过该点的所有直线的p值(取整)
if(p>0)%若p大于0,则将点存储在(d,2d)空间
s(k,d+p)=s(k,d+p)+1;%(a,p)相应的累加器单元加1
z{k,d+p}=[z{k,d+p},[i,j]'];%存储点坐标
else
ap=abs(p)+1;%若p小于0,则将点存储在(0,d)空间
s(k,ap)=s(k,ap)+1;%(a,p)相应的累加器单元加1
z{k,ap}=[z{k,ap},[i,j]'];%存储点坐标
end
end
end
end
end
fori=1:
a
forj=1:
d*2%检查每个累加器单元中存储数量
if(s(i,j)>30)%将提取直线的阈值设为70
lp=z{i,j};%提取对应点坐标
fork=1:
s(i,j)%对满足阈值条件的累加器单元中(a,p)对应的所有点进行操作
im(lp(1,k),lp(2,k))=255;%每个点R分量=255,G分量=0,B分量=0
end
end
end
end
subplot(1,2,1),imshow(I);title('原始图像');
subplot(1,2,2),imshow(im);title('hough变换边缘图像');
end
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 边缘 检测 算子 提取 Hough 变换