OpenCV(7)-OpenCV中的滤波器

news2024/11/25 14:43:53

OpenCV中的滤波器

图像滤波

  • 滤波的作用:一幅图像通过滤波器得到另一幅图像;其中滤波器又称为卷积核,滤波的过程被称为卷积

卷积的几个基本概念:

  • 卷积核的大小:
    • 卷积核一般为奇数,如3 * 3,5 * 5, 7 * 7等
    • 一方面是增加padding的原因
    • 另一方面是保证锚点在中间,防止位置发生偏移的原因
    • 影响:在深度学习中,卷积核越大,看到的信息(感受野)越多,提取的特征越好,同时计算量也就越大
  • 锚点:
    • 正中心
  • 边界扩充:
    • 当卷积核大于1且不进行边界扩充,输出尺寸将响应缩小
    • 当卷积核以标准方式进行边界扩充,则输出数据的空间尺寸将与输入相等
    • 计算公式:N = (W - F + 2P) / S + 1
      • N输出图像大小
      • W源图大小
      • F卷积核大小
      • P扩充尺寸
      • S步长大小
  • 步长

实战图像卷积

低通滤波与高通滤波

  • 低通滤波可以去除噪音或平滑图像
  • 高通滤波可以帮助查找图像的边缘

图像卷积

  • filter2D(src,ddepth,kernel,anchor,delta,borderType)
    • src:对哪幅图像进行卷积
    • ddepth:图像的位深
    • kernel:卷积核
    • anchor:锚点,默认为(-1,-1)
    • delta:每个元素加一个delta值
    • borderType:边界类型
#平滑处理
import cv2
import numpy as np

img = cv2.imread('1.png')
kernel = np.ones((5,5),np.float32) / 25
dst = cv2.filter2D(img, -1, kernel)

cv2.imshow('dst',dst)
cv2.imshow('img',img)

cv2.waitKey(0)

方盒滤波与均值滤波

方盒滤波

在这里插入图片描述

  • 参数a的作用:
    • normalize = true, a = 1/W *H (进行均值化) 方盒滤波==平均滤波
    • normalize = false, a = 1 (不进行均值化)
  • boxFilter(src,ddepth,ksize,anchor,normalize,borderType)

均值滤波

  • blur(src,ksize,anchor,borderType)

  • 一般只设src,ksize即可,使用anchor,borderType的默认值

dst = cv2.blur(img,(5,5))

高斯滤波:

  • 图像类似正态分布,中间高,两边低

在这里插入图片描述

  • GaussianBlur(img,kernel,sigmaX,sigmaY…)
    • sigmaX:钟型滤波的延展宽度,也就是最大范围到中心点有多大误差,sigma越大,图像越模糊
dst = cv2.GaussianBlur(img,(5,5),sigmaX = 1)
  • sigma越大,图像越模糊,使用高斯滤波主要用于解决高斯噪点

中值滤波

  • 优点:对胡椒噪音效果明显
    在这里插入图片描述

  • medianBlur(img,ksize)

dst = cv2.medianBlur(img,(5,5))

双边滤波

  • 优点:可以保留边缘,同时可以对边缘内的区域进行平滑处理
  • 主要作用:进行美颜
  • bilateralFilter(img,d,sigmaColor,sigmaSpace,…)
dst = cv2.bilateralFilter(img,7,20,50)

高通滤波–Scharr算子

  • 与Sobel类似,只不过使用的kernel值不同
  • Scharr只能求x方向或y方向的边缘
  • Scharr(src,ddepth,dx,dy,scale = 1, delta = 0, borderType = BORDER_DEFAULT)
d1 = cv2.Scharr(img,cv2.CV_64F,0,1)

高通滤波–拉普拉斯算子

  • 优点:可以同时求两个方向的边缘
  • 缺点:对噪音敏感,一般需要先进行去噪再调用拉普拉斯
  • Laplacian(img,ddepth,ksize = 1,scale = 1, borderType = BORDER_DEFAULT)
dst = cv2.Laplacian(img,cv2.CV_64F,ksize = 5)

边缘检测Canny

  • 边缘检测终极大法

  • 优点:边缘处理细致、操作简单

  • 操作实现:

    • 使用5*5高斯滤波消除噪声
    • 计算图像梯度的方向(0/45/90/135)
    • 取局部极大值
    • 阈值计算:如果大于最大值,一定是边缘;如果低于最小值,一定不是边缘;如果在两者之间,需要判断与之前是否连贯(连贯是边缘)
  • Canny(img,minVal,maxVal,…)

dst = cv2.Canny(img,100,200)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/100940.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【DELM回归预测】基于matlab灰狼算法改进深度学习极限学习机GWO-DELM数据回归预测【含Matlab源码 1867期】

⛄一、基本极限学习机算法简介 1 核极限学习机 极限学习机(ELM)是一种含L个神经元的单隐藏层前馈神经网络(SLFN)算法,相比于其他神经网络(如BP)具有训练速度快和泛化能力强等特点。但是ELM算法是随机生成各个神经元连接权值和阈值,易造成算法的波动性和…

架构师必读 —— 逻辑模型(4)

解决问题的基本步骤 如果情绪急躁,过于钻牛角尖,坚持“这就是唯一结论”的态度,就会阻碍逻辑思考。情绪急躁、钻牛角尖的行为属短见薄识,只能导致主观臆断。一味地想“简短地传达观点”时,往往会跳过三角逻辑中的论据和…

VSCode下载和安装详细步骤

一、下载 点击 这里 到Visual Studio Code官网下载。 选择下载版本,大家按自己的电脑版本进行选择(这里我选的是Windows 64位的)。 二、安装 1. 下载好之后,双击进行安装; 2. 选择【我同意此协议】,再点…

如何快速上手react中的redux管理库

前言: 什么是redux?redux和vuex一样,都被统称为状态管理库,是核心数据存贮与分发、监听数据改变的核心所在。 可以简单说下redux和vuex的区别: 相同点 state 共享数据流程一致:定义全局state,…

【DELM回归预测】基于matlab粒子群算法改进深度学习极限学习机PSO-DELM数据回归预测【含Matlab源码 1884期】

⛄一、PSO-DELM简介 1 DELM的原理 在2004年,极限学习机(extreme learning machine,ELM)理论被南洋理工大学的黄广斌教授提出,ELM是一种单隐含层前馈神经网络(single-hidden layer feedforward neural network,SLFN&am…

静态HTML个人音乐网页 大学生网页设计作业 简单音乐娱乐网页制作 DW个人网站模板下载 大学生简单音乐网页作品代码

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

基于风驱动算法改进的DELM预测-附代码

风驱动算法改进的深度极限学习机DELM的回归预测 文章目录风驱动算法改进的深度极限学习机DELM的回归预测1.ELM原理2.深度极限学习机(DELM)原理3.风驱动算法4.风驱动算法改进DELM5.实验结果6.参考文献7.Matlab代码1.ELM原理 ELM基础原理请参考&#xff1…

12月编程语言排行榜,java跌至低点,低代码发展迅猛

2022年12月编程语言排行榜:TIOBE Index for December 2022 TIOBE揭晓了12月全球编程语言排名,Python 以0.1%微弱优势领先C语言,成功夺冠。目前,这两种语言竞争焦灼,都是多次霸榜。 本次榜单,C作为一匹黑马…

chrome插件开发之发送网络请求v3版本

如果某个扩展希望访问自己所属域以外的资源,比如说来自http://www.google.com的资源(假设该扩展不是来自www.google.com), 浏览器不会允许这样的请求,除非该扩展获得了相应的跨域请求允许。 获取跨域请求允许 通过添加域名或者域名匹配到manifest文件的p…

CentOS 8:Redis服务器

Redis ,一款基于内存的键值型数据库服务器 常见于网站开发场景 Redis 服务器只发布了 Linux 版本 Redis服务器的安装,有3种办法: 1 自动安装 , redis 5.0 yum install redis 2 源码方式 从官网下载源码,先编译、后部署 3 …

WhaleDI数据治理利器之“低成本数据质量管理”

数字化时代,数据已经成为企业管理的关键要素,随着数据的日益增长及汇聚,企业数据质量问题成为数据治理的关键。数据质量直接影响到能否通过数据分析驱动企业生产、运营、服务提效及创新。高质量的数据对管理决策、业务支撑等都有极其重要的作…

时间序列的研究

更多的时间预测,参考 https://github.com/qingsongedu/awesome-AI-for-time-series-papers#AI4TS-Tutorials 1. 周期检测模块 可能存在的情况, 单周期多周期无周期; Robust Period 检测 该时间序列,是否有周期 以及周期的长度…

C语言浮点型的存储

3.14159 1e10可以写成1.010的10次方 1e5 表示 1.010的5次方 int main() {int n 9;//4bytefloat* pFloat (float*)&n;//float 指针访问4的字节printf("n值为:%d", n);//9printf("*pFloat值为:%f\n", *pFloat);//,是以浮点数的视角去看的*p…

深度学习基础知识---梯度弥散 梯度爆炸

目录 1 梯度弥散、梯度爆炸的成因 2 解决方式 2.1.pretrainfinetune 2.2 梯度裁剪 2.3 权重正则化 2.5 Batch Normalization正则化 2.6 残差结构 shortcut 2.7 LSTM 1 梯度弥散、梯度爆炸的成因 神经网络的层(主要是隐藏层)越多,对…

【LSTM时序预测】基于matlab EMD结合LSTM风速数据预测【含Matlab源码 2051期】

⛄一、EMD-DELM简介 1 方法及原理 1.1 EMD基本原理 经验模态分解可基于数据本身,将复杂信号分解为一系列IMF和一个r(t),分解信号时,不需要预先设置任何基函数。因为这一特点,理论上EMD方法可预处理任何一种信号的数据,因此被广泛…

【Linux磁盘管理】

Linux磁盘管理 写在前面 在此强调一个 Linux 的核心机制就是一切皆文件。 I/O Ports 即I/O 设备地址,用来标识硬件对应的设备地址,来让操作系统以及 cpu 使用。 CPU 的核数不一定就是越多越好,由于CPU 协调之间的协调问题,可能性…

洛谷P1161 开灯

开灯 题目描述 在一条无限长的路上,有一排无限长的路灯,编号为 1,2,3,4,…1,2,3,4,\dots1,2,3,4,…。 每一盏灯只有两种可能的状态,开或者关。如果按一下某一盏灯的开关,那么这盏灯的状态将发生改变。如果原来是开,…

定时器/计数器中定时/计数初值的计算

寄存器TMOD是单片机的一个特殊功能寄存器,其功能是控制定时器/计数器T0、T1的工作方式。它的字节地址为89H,不可以对它进行位操作。 只能进行字节操作,即给寄存器整体赋值的方法设置初始值,如TMOD0x01。在上电和复位时&#xff0c…

中小型企业HR人力资源管理系统源码带使用手册和操作说明

【程序语言】:.NET 【数据库】:SQL SERVER 2008 【运行环境】:WINDOWSIIS 【其他】:前端bootstrap框架 运行环境 系统运行环境:ASP.NET 4.0/IIS 6.0/SQL Server2008,使用成熟稳定的Webform开发模式&…

【现代密码学原理】——期末复习(冲刺篇)

📖 前言:快考试了,做篇期末总结,都是重点与必考点。 博主预测考点: 计算题:RSA、Diffie-Hellman密钥交换、EIGamal 密钥交换、使用SHA-512算法,计算消息的Hash值、计算消息的HMAC 应用题&#…