2019-7-18 opencv图像处理6-图像梯度(Image Gradients )-发现边缘

本文介绍了OpenCV中图像梯度的概念,包括Sobel、Scharr和Laplacian算子在边缘检测中的应用。Sobel算子结合了高斯平滑与微分操作,而Laplacian算子是通过Sobel计算二阶导数之和。重要的是,防止在从白到黑的边界处丢失边缘,这可以通过选择合适的输出图像深度如cv2.CV_64F来避免数值截断问题。
摘要由CSDN通过智能技术生成

官网参见https://docs.opencv.org/3.4.1/d5/d0f/tutorial_py_gradients.html

在形态学转换(https://blog.csdn.net/weixin_42555985/article/details/96272590)中已经提到形态学梯度概念,用于发现物体的边缘。

我们可以把图像看成二维离散函数,图像梯度其实就是这个二维离散函数的求导。
图像边缘一般都是通过对图像进行梯度运算来实现的。
梯度可以理解为图像灰度值变化。

opencv提供3种类型梯度滤波器,或者说高通滤波器。Sobel, Scharr和Laplacian。
Sobel,Scharr 其实就是求一阶或二阶导数。Scharr 是对Sobel(使用小的卷积核求解求解梯度角度时)的优化。Laplacian 是求二阶导数。

在图像平滑处理(https://blog.csdn.net/weixin_42555985/article/details/96101079)中已经介绍过低通滤波器,它的作用就是去除图像中的噪音。
高通滤波器主要是为了图像识别抽取出图像特征,这里的特征一般为边缘纹理的特征。因为图像中边缘和纹理细节都是高频信号。

内容提要

  • Sobel和Scharr算子
  • Laplacian算子
  • 重要事情:防止从白到黑的边界消失

1.Sobel和Scharr算子

Sobel算子是高斯平滑和微分操作的结合体,所以它的抗噪音能力很好。
你可以自己定义求导的方向,水平方向或者垂直方向(参数定义为xorder和yorder)。你也可以定义核大小,参数为ksize。如果ksize= -1,使用3x3的Scharr滤波器,它比3x3的Sobel滤波器的效果要好。

3x3的Scharr滤波器卷积核如下

  • x方向Scharr核
    在这里插入图片描述
  • y方向Scharr核
    在这里插入图片描述

2.Laplacian算子

opencv在计算Laplacian算子时直接调用Sobel算子。计算公式如下:

dst=Δsrc= ∂ 2 s r c ∂ x 2 \frac{ ∂^2 src } {∂x^2} x

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值