Opencv图像梯度与Canny边缘检测(python)

本文介绍了图像处理中的边缘检测技术,包括Sobel算子、Laplacian算子、Scharr算子及Canny边缘检测算法的基本原理与实现步骤。通过实例展示了如何利用这些技术进行图像边缘的提取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

案例 ©Fu Xianjun. All Rights Reserved.

一、读取图像

知识储备:Sobel算子

计算x方向边缘(梯度):dx=1,dy=0

计算y方向边缘(梯度):dx=0,dy=1

参数dx与参数dy的值均为1:dx=1,dy=1

计算x方向和y方向的边缘叠加:通过组合方式实现

dst=cv2.Sobel(src,ddepth,dx,dy[,ksize[,scale[,delta[,borderType]]]])

dx代表x方向上的求导阶数 dy代表y方向上的求导阶数

ksize代表Sobel核的大小。该值为-1时,则会使用Scharr算子进行运算。

delta代表加在目标图像dst上的值,该值是可选的,默认为0

        知识储备:Laplacian算子

Laplacian(拉普拉斯)算子是一种二阶导数算子,其具有旋转不变性,可以满足不同方向的图像边缘锐化(边缘检测)的要求。通常情况下,其算子的系数之和需要为零。

图像梯度-Scharr算子

        知识储备:Canny边缘检测

        由于图像边缘非常容易受到噪声的干扰,通常需要对图像进行滤波以去除噪声。滤波的目的是平滑一些纹理较弱的非边缘区域,以便得到更准确的边缘。

计算图像x方向边缘

计算图像y方向边缘

编程实现计算peppa的sobel边缘

Canny边缘检测

1) 使用高斯滤波器,以平滑图像,滤除噪声。        

2) 计算图像中每个像素点的梯度强度和方向。

3) 应用非极大值(Non-Maximum Suppression)抑制,以消除边缘检测带来的杂散响应。

4) 应用双阈值(Double-Threshold)检测来确定真实的和潜在的边缘。

5) 通过抑制孤立的弱边缘最终完成边缘检测。

Canny实战:车道检测

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值