canny算子边缘提取分为四个步骤
1、去噪:
利用高斯滤波对图像卷积进行去噪处理;
2、求梯度:
采用梯度滤波模板对图像进行卷积,求取图像X方向和Y方向的梯度,以及对应的夹角;
3、非极大值抑制:
将各像素的梯度模值与梯度方向上相邻两个像素进行比较,保留梯度为极大值点的像素灰度;
算法设计
算法目标:完成像素梯度方向相邻两点的梯度比较。
方式:C点梯度一致,dTemp1和dTemp2梯度未知,采用相邻像素梯度,通过插值求得dTemp1和dTemp2的梯度,进行比较。
方法:根据C点的梯度角度确定相邻像素,通过相邻像素进行插值得到dTemp的梯度。
1、首先需要选取插值像素g1,g2,再选取插值比例K。
参数设定依据,尽量选择一致的不随条件改变的规则,简化算法。
2、插值比例K与C点斜率相关,tanU=dx/dy——K=短边/长边,tanU与K存在条件转换关系
插值比例与斜率的条件转换关系
1、以角度45°,90°,135°,180°作为边界判断条件。
<45°,tanU=dx/dy=K
45°<U<90°,tanU=dx/dy=1/K
90°<U<135°,tanU=dx/dy=-1/K
135°<U<180°,tanU=dx/dy=-K
2、以K=短边/长边
tanU=dx/dy
abs(dx)?abs(dy):比较大小
K=小/大
第二种方法不需要判断条件,这是取决于斜率=dx/dy;插值比例是短边占整边的比例(等价于占长边的比例)所以只需要在斜率中提取出短长边的比值信息即可。
3、插值规则:temp=g1*K+g2*(1-K),g1是对角像素,g2是轴向像素。
插值像素选取依据:</