欢迎来到知嘟嘟! 联系电话:13095918853 卖家免费入驻,海量在线求购! 卖家免费入驻,海量在线求购!
知嘟嘟
我要发布
联系电话:13095918853
知嘟嘟经纪人
收藏
专利号: 2019105881910
申请人: 西华师范大学
专利类型:发明专利
专利状态:已下证
专利领域: 计算;推算;计数
更新日期:2024-01-05
缴费截止日期: 暂无
价格&联系人
年费信息
委托购买

摘要:

权利要求书:

1.一种基于局部阈值的Canny边缘检测算法,其特征在于:包括以下步骤:

1)对图像进行平滑滤波处理,用高斯滤波去除噪声;

2)基于平滑后的图像计算图像梯度幅值和方向;

3)对梯度方向进行非极大值抑制计算获取边缘点,若当前像素点梯度的幅值大于梯度正负方向上相邻两个像素点的梯度幅值,则认为该点是边缘点,将其对应位置标记为1,否则该点被抑制为非边缘点,将其对应位置标记为0;

4)获取全局比例值;

5)根据全局比例值,利用加速算法计算局部高低阈值矩阵;

6)根据双阈值矩阵检测边缘,得到最终边缘图像。

2.根据权利要求1所述的一种基于局部阈值的Canny边缘检测算法,其特征在于:所述步骤1)的具体方法如下:选用二维高斯函数对图像进行平滑滤波处理,高斯函数和滤波去噪计算分别为公式(1)和公式(2)G(x,y)=H(x,y,σ)*I(x,y)  (2)其中,H(x,y,σ)是二维高斯函数,I(x,y)是原灰度图像,G(x,y)是滤波去噪后的图像,*表示卷积;σ表示平滑程度。

3.根据权利要求1所述的一种基于局部阈值的Canny边缘检测算法,其特征在于:所述步骤2)的具体方法如下:采用一维高斯函数的一阶导数计算平滑后图像G(x,y),得到水平和垂直方向的梯度,Gx(x,y)=ΔHx(x,σ)*G(x,y)  (3c)Gy(x,y)=ΔHy(y,σ)*G(x,y)  (4c)梯度幅值图M(x,y)和梯度方向角θ(x,y)计算分别为公式(5)和公式(6)其中,Hx(x,σ)和Hy(y,σ)分别表示行向量和列向量;ΔHx(x,σ)和ΔHy(y,σ)分别表示高斯函数一阶导数构成的行向量和列向量;Gx(x,y)和Gy(x,y)分别是通过卷积得到的行方向和列方向的梯度图像。

4.根据权利要求1所述的一种基于局部阈值的Canny边缘检测算法,其特征在于:所述步骤4)的具体如下:首先利用最大类间方差法求梯度幅值图M(x,y)的分割阈值T,再采用公式(7)计算M(x,y)中灰度值大于等于T的像素点数占图像比例值,其中,m、n分别是梯度幅值图的行数和列数。

5.根据权利要求1所述的一种基于局部阈值的Canny边缘检测算法,其特征在于:所述步骤5)的具体方法如下:设梯度幅值图M的大小为m×n,计算局部阈值的图像块S的大小为w×w, 对于M的任意点(x,y)∈[v+1,m-v]×[v+1,n-v],依照下面步骤计算:

1、以点(x,y)为中心,提取大小为w×w的局部图像块S;

2、计算图像块S的局部阈值t作为点(x,y)的阈值,阈值t满足公式(8)点(x,y)的高阈值采用公式(9)

H(x,y)=max(0.05,max(min(0.8×T,t),0.2×T)))  (9)低阈值采用公式(10)

L(x,y)=0.5×H(x,y)  (10)。

6.根据权利要求1所述的一种基于局部阈值的Canny边缘检测算法,其特征在于:所述步骤6)的具体方法如下:

1、采用公式(11)计算得到可能边缘点P(x,y)的梯度幅值图:M′(x,y)=M(x,y)*P(x,y)  (11)

2、双阈值检测,采用公式(12)计算值为1表示强边缘点,值为0.5表示弱边缘点:

3、连接边缘,抑制孤立弱边缘点:

得到最终边缘图像E′(x,y)。

7.根据权利要求5所述的一种基于局部阈值的Canny边缘检测算法,其特征在于:具体的局部阈值加速计算方法的步骤如下:步骤1:将梯度幅值图像M的值映射到1~b之间的整数:old

纵向每次移动s个像素,对所有列进行更新统计,设行坐标初始值为x =v+1-s,初始化:B(M*(i,j),j)=B(M*(i,j),j)+1  (15)其中,i=1,2,…,w,j=1,2,…,n;

步骤2:

1、xnew=xold+s,

2、如xnew>v+1,则按以下步骤更新矩阵B,a)减去移除行的统计值:

B(M*(i,j),j)=B(M*(i,j),j)-1  (16)其中i=xnew-v,xnew-v+1,…,xnew-v+s,j=1,2,…,nb)加上移入行的统计值:

B(M*(i,j),j)=B(M*(i,j),j)+1  (17)其中,i=xnew+v-1,xnew+v-2,…,xnew+v-s,j=1,2,…,n;

针对每个xnew,从左向右计算相隔s步长的局部图像块S的直方图及其局部高低阈值,设yold=v+1-s,计算xnew行的第一个局部图像块S的直方图:步骤3:

new old

1、y =y +s,

2、如果ynew>v+1,则按如下公式更新BK,

3、利用公式(7)计算得到的a,获取第一个满足如下公式的t:则点(xnew,ynew)的局部高阈值为:H(xnew,ynew)=max(0.05,max(min(0.8×T,t/b),0.2×T)))  (21)局部低阈值为:

L(xnew,ynew)=0.5×H(xnew,ynew)  (22)步骤4:设yold=ynew,若yold+s≤n-v则转步骤3;

步骤5:设xold=xnew,若xold+s≤m-v则转步骤2;

步骤6:对于图像M中没有计算高低阈值的像素点,采用线性插值方式计算得到。