基于MATLAB的canny算子提取边缘,Canny算子提取边缘Matlab源代码.doc

253b171540df25e1b84436cbe50dfc72.gifCanny算子提取边缘Matlab源代码.doc

Canny算子提取边缘Matlab源代码介绍function ecanny_edgeI,sigmafunctioneedgeI,canny,thresh,sigma;该函数实现Canny算子提取边缘点输入图像为I,标准差sigma,输出为边缘图像em,nsizeI;Rr2m-1;cc2n-1;erepmatlogicaluint80,m,n;产生同样大小的边缘图像e,初始化为1 ,即初始化边缘GaussianDieOff-0.001;设定高斯函数消失门限PercentOfPixelsNotEdges-7;用于计算边缘门限ThresholdRatio-4;设置两个门限的比例首先设计高斯滤波器和它的微分pw130;设定滤波器宽度ssqsigma*sigma;计算方差widthmaxfindexp-pw.*pw/2*sigma*sigmaGaussianDieOff;计算滤波算子宽度t-widthwidth;len2*width1;t3t-.5;t;t.5;对每个像素左右各半个像素位置的值进行平均gausumexp-t3.*t3/2*ssq./6*pi*ssq;一维高斯滤波器dgau-t.*exp-t.*t/2*ssq/ssq.;高斯滤波器的微分rasizeI,1;casizeI,2;ay255*doubleI;ax255*doubleI;hconvgau,dgau;利用高斯函数滤除噪声和用高斯算子的一阶微分对图像滤波合并为一个算子axconv2ax,h,same.;产生x方向滤波ayconv2ay,h,same;产生y方向滤波magsqrtax.*axay.*ay;计算滤波结果的幅度magmaxmaxmag;if magmax0magmag/magmax;对滤波幅度进行归一化end下面根据滤波幅度的概率密度计算滤波门限counts,ximhistmag,64;计算滤波结果的幅度的直方图highThreshminfindcumsumcountsPercentOfPixelsNotEdges*m*n/64;通过设定非边缘点的比例来确定高门限lowThreshThresholdRatio*highThresh;设置低门限为高门限乘以比例因子threshlowThresh,highThresh;下面进行非极大抑制大于高门限的点归于强边缘图像小于低门限的点归于弱边缘图像idxStrong;for dir14idxLocalMaxcannyFindLocalMaximadir,ax,ay,mag;idxWeakidxLocalMaxmagidxLocalMaxlowThresh;eidxWeak1;idxStrongidxStrong;idxWeakmagidxWeakhighThresh;endrstrongremidxStrong-1,m1;rem是求余数cstrongflooridxStrong-1/m1;向-取整ebwselecte,cstrong,rstrong,8;通过形态学算子将两幅图像的边缘进行连接

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值