图像梯度-scharr算子

文章介绍了Scharr算子与Sobel算子在计算梯度时的差异。尽管两者的计算量和速度相同,但Scharr算子提供了更高的精度,因此在实际应用中更常用于图像梯度检测。文中通过函数展示了Scharr算子的实现,并指出当Sobel函数的第五个参数为-1时,表示使用的是Scharr算子。

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

sobel算子 1 2 1
scharr算子 3 10 3
两者计算量和计算速度是一样的,但是scharr算子准确度更高,在梯度检测时用的也更多。
在这里插入图片描述
函数如下所示:
在这里插入图片描述

参数解释见上一篇sobel算子。
求两个方向上的梯度:使用fx fy同时为1,这种编程方式会报错,故和sobel算子不一样 ,只能有一种编程方式,即相加,使用函数addWeighted 。

其实也可以说scharr算子是对sobel算子的改进,故
在这里插入图片描述
sobel函数的第五个值表示卷积核大小,不可能为负数,所以为-1 时,表示scharr算子。

import cv2
a=cv2.imread('image\\sobel.bmp',cv2.IMREAD_GRAYSCALE)
scharrx=cv2.Scharr(a,cv2.CV_64F,1,0)
scharrx=cv2.convertScaleAbs(scharrx)
scharry=cv2.Scharr(a,cv2.CV_64F,0,1)
scharry=cv2.convertScaleAbs(scharry)
scharrxy=cv2.addWeighted(scharrx,0.5,scharry,0.5,0)
cv2.imshow('a',a)
cv2.imshow('scharrx',scharrx)
cv2.imshow('scharry',scharry)
cv2.imshow('scharrxy',sch
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值