opencv009 滤波器01(卷积)

这篇具有很好参考价值的文章主要介绍了opencv009 滤波器01(卷积)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

图像卷积操作(convolution),或称为核操作(kernel),是进行图像处理的一种常用手段,

图像卷积操作的目的是利用像素点和其邻域像素之前的空间关系,通过加权求和的操作,实现模糊(blurring),锐化(sharpening),边缘检测(edge detection)等功能。

期末考试结束!又开始学习opencv啦

opencv009 滤波器01(卷积),计算机视觉,深度学习,cnn,python,opencv,人工智能,学习

1、什么是图片卷积

图像卷积 就是 卷积核在图像上按行滑动遍历像素时不断地相乘求和的过程

opencv009 滤波器01(卷积),计算机视觉,深度学习,cnn,python,opencv,人工智能,学习

2D卷积需要4个嵌套循环4-double loop,所以它并不快,除非我们使用很小的卷积核。这里一般使用3x3或者5x5。而且,对于滤波器,也有一定的规则要求:

1)滤波器的大小应该是奇数,例如3x3,5x5或者7x7。(原因后面会提到)

2)滤波器矩阵所有的元素之和应该要等于1,这是为了保证滤波前后图像的亮度保持不变。当然了,这不是硬性要求了。

3)如果滤波器矩阵所有元素之和大于1,那么滤波后的图像就会比原图像更亮,反之,如果小于1,那么得到的图像就会变暗。如果和为0,图像不会变黑,但也会非常暗。

4)对于滤波后的结构,可能会出现负数或者大于255的数值。对这种情况,我们将他们直接截断到0和255之间即可。对于负数,也可以取绝对值。

步长

步长就是卷积核在图像上移动的步幅,充分扫描图片,步长一般为1

下例步长为2(不太常见)

opencv009 滤波器01(卷积),计算机视觉,深度学习,cnn,python,opencv,人工智能,学习

padding

上面的例子中发现,卷积操作后图片的长宽会变小,如果要保持图片大小不变,我们需要在图片的周围填充0,padding指的是填充0的圈数 

opencv009 滤波器01(卷积),计算机视觉,深度学习,cnn,python,opencv,人工智能,学习

可以通过公式计算出需要填充的0的圈数

opencv009 滤波器01(卷积),计算机视觉,深度学习,cnn,python,opencv,人工智能,学习

右下角的公式是P=(F-1)/2

(自动认为步长为0哈)

卷积核的大小

 滤波器的大小应该是奇数。

  • 这样它才有一个中心,例如3x3,5x5或者7x7。有中心了,也有了半径的称呼,例如5x5大小的核的半径就是2。
  • 根据上面的padding公式,如果保持图片大小不变,采用偶数卷积核的话,比如4*4,将会出现填充1.5圈0的情况
  • 有中心,指出滤波器的位置,即opencv卷积中的锚点

卷积案例

函数 

filter2D(src, ddepth, kernel[, dst[,anchor[,delta[,borderType]]]])
  • ddepth是卷积之后的位深,即卷积之后图片的位深,即卷积之后图片的数据类型,一般设为-1,表示和原图类型一致 
  • kernel是卷积核大小,用元组或者ndarray表示,要求数据类型必须是float型
  • anchor锚点,即卷积核的中心点,是可选参数,默认值是(-1,-1)
  • delta 可选参数,表示卷积之后额外加一个值,相当于线性方程中的偏差,默认是0
  • borderType边界类型,一般不设

 模糊

 实例: 

import cv2
import numpy as np
img = cv2.imread("F:\est01\e3.jpg")
kernel = np.ones((5, 5), np.float32)/25
# 卷积操作
dst = cv2.filter2D(img, -1, kernel)
cv2.imshow('img', np.hstack((img, dst)))
cv2.waitKey(0)
cv2.destroyAllWindows()

其他函数说明:

1、np.ones()函数

返回给定形状和数据类型的新数组,其中元素的值设置为1。此函数与numpy zeros()函数非常相似。 

np.ones(shape, dtype=None, order='C')
  • shape:一个整数类型或者一个整数元组,用于定义数组的大小。如果仅指定一个整数类型变量,则返回一维数组。如果指定的是整数元组,则返回给定形状的数组。
  • dtype:可选参数,默认值为float。用于指定数组的数据类型。
  • order:指定内存重以行优先(‘C’)还是列优先(‘F’)顺序存储多维数组。
2、拼接数组

np.vstack():在竖直方向上堆叠

np.hstack():在水平方向上平铺

 就是相当于两张图片组合到一块

 结果:

np.ones((5, 5), np.float32)/25

结合上面的原理,/25相当于取平均值,所以就是模糊的效果了 

opencv009 滤波器01(卷积),计算机视觉,深度学习,cnn,python,opencv,人工智能,学习文章来源地址https://www.toymoban.com/news/detail-813686.html

到了这里,关于opencv009 滤波器01(卷积)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Opencv中的滤波器

    一副图像通过滤波器得到另一张图像,其中滤波器又称为卷积核,滤波的过程称之为卷积。 这就是一个卷积的过程,通过一个卷积核得到另一张图片,明显发现新的到的图片边缘部分更加清晰了(锐化)。  上图就是一个卷积的过程,下面的是原始图像,上面的是卷积核。卷

    2024年01月22日
    浏览(30)
  • OpenCV 08(图像滤波器 算子)

    边缘是像素值发生跃迁的位置,是图像的显著特征之一,在图像特征提取,对象检测,模式识别等方面都有重要的作用。 人眼如何识别图像边缘? 比如有一幅图,图里面有一条线,左边很亮,右边很暗,那人眼就很容易识别这条线作为边缘.也就是** 像素的灰度值快速变化的地方

    2024年02月09日
    浏览(28)
  • 《数字图像处理-OpenCV/Python》连载:空间滤波之高斯滤波器

    本书京东 优惠购书链接 https://item.jd.com/14098452.html 本书CSDN 独家连载专栏 https://blog.csdn.net/youcans/category_12418787.html 图像滤波是指在尽可能保留图像细节特征的条件下对目标图像的噪声进行抑制,是常用的图像处理方法。 空间滤波也称空间域滤波,滤波器规定了邻域形状与邻域

    2024年02月02日
    浏览(37)
  • π型滤波器 计算_π型滤波电路

    滤波器在功率和音频电子中常用于滤除不必要的频率。而电路设计中,基于不同应用有着许多不同种类的滤波器,但它们的基本理念都是一致的,那就是移除不必要的信号。所有滤波器都可以被分为两类,有源滤波器和无源滤波器。有源滤波器用到1个或多个有源器件和其它无

    2024年02月03日
    浏览(27)
  • 使用C++设计滤波器(低通滤波器,高通滤波器,带通滤波器)

    以下是一个使用C++语言编写的基本低通滤波器的示例代码,它可以对输入信号进行滤波以降低高频成分: 在这个示例中,我们使用一个一阶滤波器来实现低通滤波器。该滤波器具有一个截止频率,所有高于该频率的信号成分都会被过滤掉。在构造函数中,我们根据采样率和截

    2024年02月11日
    浏览(27)
  • python实现陷波滤波器、低通滤波器、高斯滤波器、巴特沃斯滤波器

    在一幅图像中,其低频成分对应者图像变化缓慢的部分,对应着图像大致的相貌和轮廓,而其高频成分则对应着图像变化剧烈的部分,对应着图像的细节(图像的噪声也属于高频成分)。 低频滤波器,顾名思义,就是过滤掉或者大幅度衰减图像的高频成分,让图像的低频成分

    2024年02月11日
    浏览(31)
  • 高通滤波器,低通滤波器

    1.高通滤波器是根据像素与邻近像素的亮度差值来提升该像素的亮度。   确实容易看出,第三种效果最好。 2. 使用medianBlur()作为模糊函数,它对去除数字化的视频噪声非常有效。  从BGR色彩空间转灰度色彩空间   使用Laplacian()作为边缘检测函数,它会产生明显的边缘线条 

    2024年02月14日
    浏览(23)
  • 【图像处理:频率域平滑与锐化】理想滤波器,巴特沃思滤波器,高斯滤波器

    本文主要介绍频率域滤波器,此处的频率域是基于傅立叶变换得出。 在一幅图像中, 低频对应图像变化缓慢的部分 ,即图像大致外观和轮廓。 高频部分对应图像变化剧烈的部分即图像细节 。低通滤波器的功能是让低频率通过而滤掉或衰减高频,其作用是过滤掉包含在高频

    2024年02月04日
    浏览(37)
  • openCV实战-系列教程5:边缘检测(Canny边缘检测/高斯滤波器/Sobel算子/非极大值抑制/线性插值法/梯度方向/双阈值检测 )、原理解析、源码解读 ?????OpenCV实战系列总目录

    打印一个图片可以做出一个函数: Canny是一个科学家在1986年写了一篇论文,所以用自己的名字来命名这个检测算法,Canny边缘检测算法这里写了5步流程,会用到之前《openCV实战-系列教程》的内容。  使用高斯滤波器,以平滑图像,滤除噪声。 计算图像中每个像素点的梯度强

    2024年02月11日
    浏览(40)
  • 【状态估计】卡尔曼滤波器、扩展卡尔曼滤波器、双卡尔曼滤波器和平方根卡尔曼滤波器研究(Matlab代码实现)

    💥💥💞💞 欢迎来到本博客 ❤️❤️💥💥 🏆博主优势: 🌞🌞🌞 博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️ 座右铭: 行百里者,半于九十。 📋📋📋 本文目录如下: 🎁🎁🎁 目录 💥1 概述 📚2 运行结果 🎉3 参考文献 🌈4 Matlab代码实现 本文包括

    2024年02月08日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包