OpenCV学习笔记-Sobel()函数与Scharr()函数怎么用

本教程详细介绍了OpenCV中Sobel()和Scharr()函数的使用,包括它们的参数解释和在图像导数计算中的应用。通过这两个函数,可以计算图像的x和y方向导数,Sobel函数适用于不同大小的内核,而Scharr函数则提供了3x3内核更精确的导数计算。文章包含源码示例和程序说明,旨在帮助学习者理解和实践图像处理中的导数计算。
摘要由CSDN通过智能技术生成

参考:https://docs.opencv.org/3.4.5/d2/d2c/tutorial_sobel_derivatives.html
若有表达不当或错误欢迎留言指正,互相交流学习,共同进步

目标

在本教程中,您将学习如何:

  • 使用OpenCV函数Sobel()计算图像的导数。
  • 使用OpenCV函数Scharr()计算内核大小为3x3的、更准确的导数

原理

参考官方文档:https://docs.opencv.org/3.4.5/d2/d2c/tutorial_sobel_derivatives.html

Sobel()函数讲解

void Sobel(	InputArray src, 
			OutputArray dst, 
			int ddepth,
			int dx, 
			int dy, 
			int ksize = 3,
			double scale = 1, 
			double delta = 0,
			int borderType = BORDER_DEFAULT);

第一个参数:输入图像
第二个参数:输出图像(与输入图像有相同的的尺寸和通道数)
第三个参数:输出图像的深度(,取决于输入图像;输出图像深度若为-1,则输出图像深度和输入图像深度一样,详见下表)

Input depth (src.depth())/输入图像的深度 Output depth (ddepth)/输出图像的深度
CV_8U -1/CV_16S/CV_32F/CV_64F
CV_16U/CV_16S -1/CV_32F/CV_64F
CV_32F -1/CV_32F/CV_64F
CV_64F -1/CV_64F

第四个参数:x、dx方向上的差分阶数
第五个参数:y、dy方向上的差分阶数
第六个参数:Sobel()内核的大小,必须为1或3或5或7
第七个参数:可选的系数,用于乘到导数计算结果中
第八个参数:可选的量值,用于加到导数计算结果中
第九个参数:边界类型,默认值为BORDER_DEFAULT

    BORDER_CONSTANT    = 0, //!< `iiiiii|abcdefgh|iiiiiii`  with some specified `i`
    BORDER_REPLICATE   = 1, //!< `aaaaaa|abcdefgh|hhhhhhh`
    BORDER_REFLECT     = 2, //!< `fedcba|abcdefgh|hgfedcb`
    BORDER_WRAP        = 3, //!< `cdefgh|abcdefgh|abcdefg`
    BORDER_REFLECT_101 = 4, //!< `gfedcb|abcdefgh|gfedcba`
    BORDER_TRANSPARENT = 5, //!< `uvwxyz|abcdefgh|ijklmno`

    BORDER_REFLECT101  = BORDER_REFLECT_101, //!< same as BORDER_REFLECT_101
    BORDER_DEFAULT     = BORDER_REFLECT_101, //!< same as BORDER_REFLECT_101
    BORDER_ISOLATED    = 16 //!< do not look outside of ROI

Scharr()函数讲解

void Scharr(	InputArray src, 
				OutputArray dst, 
				int ddepth,
				int dx, 
				int dy, 
				double scale = 1, 
				double delta = 0,
				int borderType = BORDER_DEFAULT);

第一个参数:输入图像
第二个参数:输出图像(与输入图像有相同的的尺寸和通道数)
第三个参数:输出图像的深度(,取决于输入图像;输出图像深度若为-1,则输出图像深度和输入图像深度一样,详见下表)
第四个参数:x、dx方向上的差分阶数
第五个参数:y、dy方向上的差分阶数
第六个参数:可选的系数,用于乘到导数计算结果中
第七个参数:可选的量值,用于加到导数计算结果中
第八个参数:边界类型,默认值为BORDE

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值