[发明专利]一种基于局部阈值的Canny边缘检测算法有效
申请号: | 201910588191.0 | 申请日: | 2019-07-02 |
公开(公告)号: | CN110428433B | 公开(公告)日: | 2023-05-09 |
发明(设计)人: | 郑伯川;张征;杨泽静;何育欣 | 申请(专利权)人: | 西华师范大学 |
主分类号: | G06T7/13 | 分类号: | G06T7/13;G06T7/136;G06T5/00 |
代理公司: | 北京科亿知识产权代理事务所(普通合伙) 11350 | 代理人: | 汤东凤 |
地址: | 637000 *** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 局部 阈值 canny 边缘 检测 算法 | ||
1.一种基于局部阈值的Canny边缘检测算法,其特征在于:包括以下步骤:
1)对图像进行平滑滤波处理,用高斯滤波去除噪声;
2)基于平滑后的图像计算图像梯度幅值和方向;
3)对梯度方向进行非极大值抑制计算获取边缘点,若当前像素点梯度的幅值大于梯度正负方向上相邻两个像素点的梯度幅值,则认为该点是边缘点,将其对应位置标记为1,否则该点被抑制为非边缘点,将其对应位置标记为0;
4)获取全局比例值;
5)根据全局比例值,利用加速算法计算局部高低阈值矩阵;
6)根据双阈值矩阵检测边缘,得到最终边缘图像;
所述步骤4)的具体如下:
首先利用最大类间方差法求梯度幅值图M(x,y)的分割阈值T,再采用公式(7)计算M(x,y)中灰度值大于等于T的像素点数占图像比例值,
其中,m、n分别是梯度幅值图的行数和列数;
所述步骤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)
具体的局部阈值加速计算方法的步骤如下:
步骤1:将梯度幅值图像M的值映射到1~b之间的整数:
纵向每次移动s个像素,对所有列进行更新统计,设行坐标初始值为xold=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,…,n
b)加上移入行的统计值:
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:
1、ynew=yold+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中没有计算高低阈值的像素点,采用线性插值方式计算得到。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西华师范大学,未经西华师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910588191.0/1.html,转载请声明来源钻瓜专利网。