边缘检测的基本步骤: 滤波,增强, 检测
一、 滤波
1 线性滤波
1.1 平滑处理: 也称模糊处理,用于减少噪点或失真,降低图像分辨率时使用较多。
1.2 图像滤波: 图像预处理必不可少的操作,在保留特征信息的情况下抑制目标噪声。图像滤波目的:抽出特征;消除噪声。要求: 不能损坏轮廓和边缘等重要信息;图像视觉信息良好。
滤波器:加权系数窗口
5中常见的平滑化操作方法: 方框滤波BoxBLur;均值滤波Blur;高斯滤波GaussianBlur; 中值滤波medianBlur;双边滤波bilateralBlur。
1.3 邻域算子: 用像素周围的像素值决定此像素的最终输出(就是卷积处理)。
1.4 方框滤波:box filter
函数:boxFilter(src,dst,ddepth(深度,-1代表原图深度), ksize(内核大小,size(3,3)为3X3))
1.4 均值滤波:最简单,输出图像的每一个像素为输入图像对应像素的平均值(所有加权系数为1),就是归一化的方框滤波。
函数:blur(src, dst, ksize)
缺点:损失边缘信息
1.5 高斯滤波:广泛应用于减少噪声。用加权平均像素值代替filter中心像素值。
2 非线性滤波: 噪声为散粒噪声而不是高斯噪声时
2.1 中值滤波:利用领域内的中值代替该像素点的灰度值。基于排序统计理论。不依赖领域内那些与典型值差别很大的值。常用于保护边缘信息。
函数:medianBlur(src, dst, ksize(一般为奇数 1 3 5 7...)
优点:去燥能力强,保护边缘信息。
缺点:计算时间长
2.2 双边滤波:结合空间内的领域度和像素值相似度的一种折中处理。保边,去燥,简单,非迭代。
函数: bilateralFilter(src, dst, int d (像素领域直径),sigmaColor(参数越大,越宽广的颜色混到一起), sigmaSpace(数值越大,周边越远的像素会受到影响))
二、增强
三、检测
边缘检测的各种算子:Canny、 laplace, Sobel, 以及Scharr 滤波器
1 Canny算子: 被推崇为当今最优边缘检测算法。目标是找到最优边缘检测算法。三个评价标准: 低错误率,减少噪声误报; 高定位性:标出的边缘要与实际边缘接近; 最小响应:边缘只被标识一次。
检测步骤:消除噪声; 计算梯度幅度值; 非极大值抑制;阀值滞后:像素值超过阀值保留,低于阀值去除。高低阀值推荐3:1,2:1。
函数:Canny(src, dst, threshold1, threshhold2)
2 sobel 算子
3 Laplace 算子
4 霍夫变换(Hough):从图像中识别基本形状。
4.1 霍夫线变换:
函数:HoughLine
4.2 霍夫圆变换:检测圆
函数: HoughCircles()