CV2逐步学习-2 cv2

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

2)参数:

  • src –输入图像;图像可以具有任何数量的信道,其独立地处理的,但深度应CV_8U,CV_16U,CV_16S,CV_32F或CV_64F。
  • dst –输出与图像大小和类型相同的图像src。
  • ksize –高斯核大小。 ksize.width 并且 ksize.height 可以有所不同,但它们都必须是正数和奇数。或者,它们可以为零,然后从计算 sigma*。
  • sigmaX – X方向上的高斯核标准偏差。
  • sigmaY – Y方向上的高斯核标准差;如果 sigmaY 为零,则将其设置为等于 sigmaX;如果两个西格玛均为零,则分别根据ksize.width 和 进行计算 ksize.height(getGaussianKernel()有关详细信息,请参见 link);完全控制的结果,无论这一切的语义未来可能的修改,建议指定所有的ksize,sigmaX和sigmaY。
    borderType –像素外推方法。
1.1.由参数解释产生的问题

不知道你初次看到这些参数是否很迷惑,是否能迅速理解其代表的含义和作用,反正我是迷的很,在我们对GaussianBlur()进行简单使用时,很多时候我们并不理解我们所设置的参数的内涵及其背后的处理是怎么样的,在我的学习过程中,我提出了如下的几个问题

  1. 高斯核是什么?ksize作用是什么或者说起到什么效果?
  2. 为什么存在对两个标准差的设置?二维高斯函数不也只有一个标准差吗?
  3. 高斯模糊的具体实现流程

这些问题先放一下,先来看一下必要的准备知识

2.高斯函数、卷积核

首先来看高斯分布(即正态分布):
正态分布:
X ~ N(\mu, \sigma^2):随机变量X的取值x_i和其对应的概率值P(X = x_i) 满足正态分布(高斯函数)

2.1 一维高斯分布

概率密度函数(高斯函数):在这里插入图片描述在这里插入图片描述

2.2二维高斯分布

概率密度函数:这里的u、v对应图像坐标系下像素点的坐标
在这里插入图片描述
可视化图片为:该图来源于link
在这里插入图片描述

2.3线性滤波处理及卷积核
线性滤波与卷积的基本概念

线性滤波可以说是图像处理最基本的方法,它可以允许我们对图像进行处理,产生很多不同的效果。做法很简单。首先,我们有一个二维的滤波器矩阵(有个高大上的名字叫卷积核)和一个要处理的二维图像。然后,对于图像的每一个像素点,计算它的邻域像素和滤波器矩阵的对应元素的乘积,然后加起来,作为该像素位置的值。这样就完成了滤波过程。
在这里插入图片描述
关于卷积核的具体处理实例可在这里查看,便于理解:link
贴一张那篇文章中的实例图:
在这里插入图片描述

3.解释1.1的问题
3.1高斯核是什么?ksize作用是什么或者说起到什么效果?
  • 高斯核可看作卷积核,同样为二维滤波器矩阵,不同的是高斯核在普通卷积核的基础上进行了加权处理(后面会讲的权重矩阵)
  • ksize即规定这个二维滤波器矩阵的形状
3.2为什么存在对两个标准差的设置?二维高斯函数不也只有一个标准差吗?

由cv2.GaussianBlur()原型我们知道,存在两个标准差sigmaX和sigmaY的设置,部分博客中会提到这两个sigma分别是对X,Y方向(也可说u、v方向,都是针对图像坐标系)的标准差,但基本均未给出其处理逻辑、过程,让人很是迷惑。

关于参数的问题,当然要看官方文档/源代码

首先,cv2.GaussianBlur中调用了getGaussianKernel()接口

那么来看getGaussianKernel
在这里插入图片描述
        这个函数可以根据ksize和sigma求出对应的高斯核,而返回值是一个一维高斯核。
        其中需要注意的是,如果sigma为非正数(负数或0)的话,就会根据ksize来自动计算sigma,计算公式为sigma = 0.3*((ksize-1)*0.5-1)+0.8

在官方解释中,我们可以看到:两个这样产生的一维高斯核可以传递给sepFilter2D函数

那我们来看看这个函数是怎么处理这俩个一维高斯核的:
在这里插入图片描述
        cv2.sepFilter2D函数传入两个一维kernel,然后对图像的每一行以kernelX为卷积核做卷积,对结果的每一列以kernelY为卷积核做卷积,最后归一化得到的高斯滤波后的图像。

img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上物联网嵌入式知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、电子书籍、讲解视频,并且后续会持续更新**

需要这些体系化资料的朋友,可以加我V获取:vip1024c (备注嵌入式)

如果你需要这些资料,可以戳这里获取

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值