基于sobel、canny的边缘检测实现

基于sobel、canny的边缘检测实现

ID:23894732

大小:175.63 KB

页数:6页

时间:2018-11-11

基于sobel、canny的边缘检测实现_第1页
基于sobel、canny的边缘检测实现_第2页
基于sobel、canny的边缘检测实现_第3页
基于sobel、canny的边缘检测实现_第4页
基于sobel、canny的边缘检测实现_第5页
资源描述:

《基于sobel、canny的边缘检测实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、基于sobel、canny的边缘检测实现一.实验原理Sobel的原理:索贝尔算子(Sobeloperator)是图像处理中的算子之一,主要用作边缘检测。在技术上,它是一离散性差分算子,用来运算图像亮度函数的梯度之近似值。在图像的任何一点使用此算子,将会产生对应的梯度矢量或是其法矢量.该算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。如果以A代表原始图像,Gx及Gy分别代表经横向及纵向边缘检测的图像,其公式如下:图像的每一个像素的横向及纵向梯度

2、近似值可用以下的公式结合,来计算梯度的大小。然后可用以下公式计算梯度方向。在以上例子中,如果以上的角度Θ等于零,即代表图像该处拥有纵向边缘,左方较右方暗。在边沿检测中,常用的一种模板是Sobel算子。Sobel算子有两个,一个是检测水平边沿的;另一个是检测垂直平边沿的。与和相比,Sobel算子对于象素的位置的影响做了加权,因此效果更好。Sobel算子另一种形式是各向同性Sobel(IsotropicSobel)算子,也有两个,一个是检测水平边沿的,另一个是检测垂直平边沿的。各向同性Sobel算子和普

3、通Sobel算子相比,它的位置加权系数更为准确,在检测不同方向的边沿时梯度的幅度一致。由于建筑物图像的特殊性,我们可以发现,处理该类型图像轮廓时,并不需要对梯度方向进行运算,所以程序并没有给出各向同性Sobel算子的处理方法。由于Sobel算子是滤波算子的形式,用于提取边缘,可以利用快速卷积函数,简单有效,因此应用广泛。美中不足的是,Sobel算子并没有将图像的主体与背景严格地区分开来,换言之就是Sobel算子没有基于图像灰度进行处理,由于Sobel算子没有严格地模拟人的视觉生理特征,所以提取的图像

4、轮廓有时并不能令人满意。在观测一幅图像的时候,我们往往首先注意的是图像与背景不同的部分,正是这个部分将主体突出显示,基于该理论,我们给出了下面阈值化轮廓提取算法,该算法已在数学上证明当像素点满足正态分布时所求解是最优的。Canny的原理:(1)图象边缘检测必须满足两个条件:一能有效地抑制噪声;二必须尽量精确确定边缘的位置。(2)根据对信噪比与定位乘积进行测度,得到最优化逼近算子。这就是Canny边缘检测算子。(3)类似与Marr(LoG)边缘检测方法,也属于先平滑后求导数的方法。Canny边缘检测算

5、法step1:用高斯滤波器平滑图象;step2:用一阶偏导的有限差分来计算梯度的幅值和方向;step3:对梯度幅值进行非极大值抑制step4:用双阈值算法检测和连接边缘二.实验过程利用上述原理实现车牌号的检测及识别实验程序:%这是一个图像对象提取方案。车辆号牌的书面分割和提取clc;clearall;im=imread('bmw.bmp');im1=rgb2gray(im);im1=medfilt2(im1,[33]);%中值滤波消除图像噪声%BW=edge(im1,'sobel');%寻找边缘[i

6、mx,imy]=size(BW);msk=[00000;01110;01110;01110;00000;];B=conv2(double(BW),double(msk));%平滑图像,减少连接的元件数量L=bwlabel(B,8);%计算连通mx=max(max(L))[r,c]=find(L==17);rc=[rc];[sxsy]=size(rc);n1=zeros(imx,imy);fori=1:sxx1=rc(i,1);y1=rc(i,2);n1(x1,y1)=255;end%存储在数组中提取

7、图像DD=edgecolor('bmw.bmp');%此处实现cany检测,通过调用函数的方式实现,函数代码在下面附有figure,imshow(im);title('原始的彩色图像')figure,imshow(im1);title('转换后的二值图像')figure,imshow(B);title('sobel边缘检测后的图像')figure,imshow(B);title('canny边缘检测后的图像')CANY检测的函数部分:functionR=edgecolor(nm);img=imrea

8、d(nm);[xyz]=size(img);ifz==1rslt=edge(img,'canny');elseifz==3img1=rgb2ycbcr(img);dx1=edge(img1(:,:,1),'canny');dx1=(dx1*255);img2(:,:,1)=dx1;img2(:,:,2)=img1(:,:,2);img2(:,:,3)=img1(:,:,3);rslt=ycbcr2rgb(uint8(img2));endR=rslt;根据上图明显可以得

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。