当前位置: 首页 > news >正文

opencv中的各种滤波器简介

在 OpenCV 中,滤波器是图像处理中的重要工具,用于对图像进行平滑、去噪、边缘检测等操作。以下是几种常见滤波器的简单介绍。


1. 均值滤波 (Mean Filter)

功能

对图像进行平滑处理,减少噪声。

应用场景
  • 去除图像中的细小噪声。
  • 模糊图像,弱化细节。
操作原理

使用一个固定大小的卷积核(如 3×3 或 5×5),计算该核内像素的平均值,并用平均值替换中心像素。

示例代码
# img: 输入图像 
# (5, 5): 卷积核大小(5x5) 
img_mean = cv2.blur(img, (5, 5))

2. 方盒滤波 (Box Filter)

功能

类似于均值滤波,但可以选择是否归一化结果。

应用场景
  • 图像平滑。
  • 快速模糊处理。
操作原理

计算卷积核区域内所有像素的平均值(归一化),或者仅计算总和(不归一化)。

示例代码
# img: 输入图像
# -1: 输出图像的深度与输入相同
# (5, 5): 卷积核大小
# normalize=True: 归一化使结果为平均值
img_box = cv2.boxFilter(img, -1, (5, 5), normalize=True)

3. 高斯滤波 (Gaussian Filter)

功能

平滑图像,减少噪声,同时尽可能保留边缘信息。

应用场景
  • 去除高斯噪声。
  • 模糊处理,常用于计算机视觉中的预处理步骤。
操作原理

使用一个基于高斯分布权重的卷积核,距离中心越近的像素权重越大,生成平滑效果。

示例代码
# img: 输入图像
# (5, 5): 高斯核大小
# 0: 根据核大小自动计算高斯分布标准差
img_gaussian = cv2.GaussianBlur(img, (5, 5), 0)

4. 中值滤波 (Median Filter)

功能

对图像进行平滑,去除“椒盐噪声”,保留边缘。

应用场景
  • 图像去噪,特别是去除“盐和胡椒噪声”。
  • 保留图像的边缘细节。
操作原理

取卷积核内像素的中值,替代中心像素的值。

示例代码
# img: 输入图像
# 5: 核大小(5x5)
img_median = cv2.medianBlur(img, 5)

5. 双边滤波 (Bilateral Filter)

功能

在平滑图像的同时,保留边缘细节。

应用场景
  • 美颜和图像增强。
  • 去除噪声的同时保留图像边缘。
操作原理

结合空间距离和像素值相似度加权,计算加权平均值。空间距离控制模糊范围,像素值相似度控制边缘保留。

示例代码
# img: 输入图像
# d=15: 过滤时每个像素邻域的直径
# sigmaColor=75: 色彩空间的标准差(控制相似度范围)
# sigmaSpace=75: 坐标空间的标准差(控制距离影响范围)
img_bilateral = cv2.bilateralFilter(img, d=15, sigmaColor=75, sigmaSpace=75)

6. Sobel 算子 (Sobel Filter)

功能

边缘检测,提取图像的梯度信息。

应用场景
  • 图像梯度计算。
  • 边缘检测中的预处理。
操作原理

计算图像的一阶导数,通过不同方向的卷积核计算水平或垂直方向的梯度。

示例代码
# img: 输入图像
# cv2.CV_64F: 输出图像的深度
# dx=1, dy=0: 对x求一阶导数
# ksize=3: 卷积核大小(3x3)
sobel_x = cv2.Sobel(img, cv2.CV_64F, 1, 0, ksize=3)# dx=0, dy=1: 对y求一阶导数
sobel_y = cv2.Sobel(img, cv2.CV_64F, 0, 1, ksize=3)

7. Scharr 算子

功能

精确边缘检测,计算梯度比 Sobel 算子更精确。

应用场景
  • 高精度边缘检测。
  • 对细节要求较高的梯度计算。
操作原理

改进的 Sobel 算子,使用优化的 3×33 \times 33×3 卷积核,减少梯度计算的误差。

示例代码
# img: 输入图像
# cv2.CV_64F: 输出图像的深度
# dx=1, dy=0: 对x求一阶导数
scharr_x = cv2.Scharr(img, cv2.CV_64F, 1, 0)# dx=0, dy=1: 对y求一阶导数
scharr_y = cv2.Scharr(img, cv2.CV_64F, 0, 1)

8. 拉普拉斯算子 (Laplacian Filter)

功能

检测图像边缘,突出图像的结构。

应用场景
  • 边缘检测。
  • 提取图像的细节。
操作原理

计算图像的二阶导数,通过检测亮度变化突出边缘。

示例代码
# img: 输入图像
# cv2.CV_64F: 输出图像的深度
laplacian = cv2.Laplacian(img, cv2.CV_64F)

9. Canny 边缘检测 (Canny Edge Detection)

功能

精准检测图像的边缘。

应用场景
  • 边缘提取,广泛用于目标检测、分割等领域。
操作原理

Canny 算法由以下步骤组成:

  1. 使用高斯滤波器平滑图像。
  2. 计算图像梯度。
  3. 应用非极大值抑制(NMS)来增强边缘。
  4. 双阈值检测,连接边缘。
示例代码
# img: 输入图像
# 100: 最低阈值
# 200: 最高阈值
edges = cv2.Canny(img, 100, 200)

对比总结

滤波器/算子功能适用场景优势
均值滤波平滑图像,去噪声去除小噪声,图像模糊简单高效
方盒滤波类似均值滤波模糊处理可选择归一化
高斯滤波平滑图像,保留边缘去噪,预处理去噪效果优于均值滤波
中值滤波去噪,保留边缘去“椒盐”噪声去噪效果佳,保留细节
双边滤波平滑并保留边缘图像增强边缘保留效果佳
Sobel 算子梯度计算,边缘检测边缘提取可检测方向性边缘
Scharr 算子高精度梯度计算边缘检测,对细节要求高精度更高的梯度计算
拉普拉斯算子边缘检测,突出结构边缘提取检测亮度变化显著的边缘
Canny 算子边缘检测精准边缘提取效果好,抗噪性强

在实际应用中,应根据处理任务的具体需求,选择合适的滤波器和算子。

相关文章:

opencv中的各种滤波器简介

在 OpenCV 中,滤波器是图像处理中的重要工具,用于对图像进行平滑、去噪、边缘检测等操作。以下是几种常见滤波器的简单介绍。 1. 均值滤波 (Mean Filter) 功能: 对图像进行平滑处理,减少噪声。 应用场景: 去除图像…...

文本数据处理

文本数据处理 一、数据转换与错误处理 (一)运维中的数据转换问题 在计算机审计及各类数据处理场景中,数据转换是关键步骤,涉及将被审计单位或其他来源的数据有效装载到目标数据库,并明确标示各表及字段含义与关系。…...

ThinkPHP 8开发环境安装

【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客 《ThinkPHP 8高效构建Web应用 夏磊 编程与应用开发丛书 清华大学出版社》【摘要 书评 试读】- 京东图书 1. 安装PHP8 Windows系统用户可以前往https://windows.php.net/downloads/releases/archives/下载PHP 8.0版本&am…...

php怎么去除数点后面的0

在PHP中,我们可以使用几种方法来去除数字小数点后的0。 方法一:使用intval函数 intval函数可以将一个数字转化为整数,另外,它也可以去除小数点后面的0。 “php $number 123.4500; $number intval($number); echo $number; // 输…...

Database.NET——一款轻量级多数据库客户端工具

文章目录 Database.NET简介下载使用使用场景总结 Database.NET简介 Database.NET 是一个功能强大且易于使用的数据库管理工具,适用于多种数据库系统。它为开发者和数据库管理员提供了一个统一的界面,可以方便地管理和操作不同类型的数据库。 支持的数据…...

Unittest02|TestSuite、TestRunner、HTMLTestRunner、处理excel表数据、邮件接收测试结果

目录 八、测试套件TestSuite和测试运行器TestRunner 1、基本概念 2、创建和使用测试套件 3、 自动发现测试用例、创建测试套件、运行测试 4、生成html的测试报告:HTMLTestRunner 1️⃣导入HTMLTestRunner模块 2️⃣运行测试用例并生成html文件 九、unittest…...

protobuf学习使用

1、概述 protobuf是Google开发的一种语言中立、平台无关、可扩展的序列化结构数据格式。允许定义一次数据结构,然后可以使用各种支持的语言来生成代码,以轻松地读写这些结构到一个二进制流中,如网络传输或文件,Protobuf支持多种编…...

跟我学c++中级篇——C++中的缓存利用

一、缓存 学习过计算机知识的一般都知道缓存这个概念,大约也知道缓存是什么。但是如果是程序员,如何更好的利用缓存,可能就有很多人不太清楚了。其实缓存的目的非常简单,就是了更高效的操作数据。大家都听说过“局部性原理”&…...

Goland 安装与使用

GoLand安装 官方网址: JetBrains GoLand:不只是 Go IDE 1. 进入官网,点击下载: ​ 2. 如下图一步步安装 ​ ​ ​ ​ ​ 3. 如下图一步步安装...

cesium通过经纬度获取3dtiles 得feature信息

找到这里3dtiles的两种访问方式: 1.1 3DTileContent#getFeature 这里涉及3DTile 数据结构,暂不了解3DTile 数据结构,因此暂不使用。 1.2 scene.pick 本次使用 scene表示虚拟场景中所有 3D 图形对象和状态的容器;scene中…...

spring cloud gateway 3

**Spring Cloud Gateway 3** 是 Spring Cloud 生态系统中的一个重要组件,用于构建 API 网关,提供路由、监控、安全等关键功能。以下是关于 Spring Cloud Gateway 3 的详细介绍: ## 1. 什么是 Spring Cloud Gateway? **Spring Clou…...

青少年编程与数学 02-005 移动Web编程基础 03课题、流式布局

青少年编程与数学 02-005 移动Web编程基础 03课题、流式布局 一、流式布局二、网页示例HTML (index.html)CSS (styles.css) 三、精灵图精灵图的工作原理精灵图的优点精灵图的缺点精灵图的适用场景 四、轮播图HTML (index.html)CSS (styles.css)JavaScript (script.js) 课题摘要…...

【数据可视化复习方向】

1.数据可视化就是数据中信息的可视化 2.数据可视化主要从数据中寻找三个方面的信息:模式、关系和异常 3.大数据可视化分类:科学可视化、信息可视化、可视分析学 4.大数据可视化作用:记录信息、分析推理、信息传播与协同 5.可视化流程&…...

Spring Security 6 系列之九 - 集成JWT

之所以想写这一系列,是因为之前工作过程中使用Spring Security,但当时基于spring-boot 2.3.x,其默认的Spring Security是5.3.x。之后新项目升级到了spring-boot 3.3.0,结果一看Spring Security也升级为6.3.0,关键是其风…...

大数据实验三

Python and anaconda 实验三数据预处理和轨迹聚类参考地址: https://www.hifleet.com/wp/communities/data/hangyundashujujishukechengshiyanzhinanshujuyuchulijiguijijuleichixugengxinzhong#post-2212https://www.hifleet.com/wp/communities/data/hangyundas…...

《计算机网络(第7版)-谢希仁》期末考试复习题和答案(总结整理)

目录 前言: 一、选择题。 二、填空题。 三、名词解释。 四、简答题。 前言: 这个自动标题自己带了序号,一开始想全部选项和题号都改过来的,结果一看一百多个全是,懒得改了 一、选择题。 1、广域网覆盖的地理范围…...

学习笔记 --C#基础其他知识点(持续更新)

C#中的同步和异步《一》 以下理解借鉴博客:借鉴博客地址1 异步编程(Asynchronous) 允许任务在后台执行,而不会阻塞调用线程。C#使用async和await关键字 async Task AsynchronousMethod() {// 等待异步操作完成await Task.Delay…...

STM32 高级 谈一下IPV4/默认网关/子网掩码/DNS服务器/MAC

首先可以通过 winr->输入cmd->输入ipconfig 命令可以查看计算机的各种地址 IPV4:是互联网协议第 4 版(Internet Protocol version 4)所使用的地址。它是一个 32 位的二进制数字,通常被分为 4 个 8 位的部分&#xff…...

智能家居实训室中,STC单片机驱动的“互联网+”智能家居系统设计

一、引言 随着经济的快速发展,人们对家居环境的智能化、网络化需求日益增强,智能家居的研究也因此受到了国内外相关机构的广泛关注。STC单片机凭借其卓越的性能和广泛的应用领域,成为了智能家居系统设计的优选方案。作为一种先进的微控制器&…...

esp32学习:用虫洞ESP32S3-EYE开发板快速实现USB摄像头(UVC免驱)

直接上干货:实现一个USB摄像头,免驱UVC设备。 硬件准备: 乐官方推荐的Cam开发板就是乐鑫带摄像头OV2604的esp32-s3-eye,我们虫洞esp32-s3-eye完全兼容这个板子哦,虫洞ESP32-S3-EYE 人脸识别 esp-cam升级 OpenCV LVGL …...

Python 面向对象编程 五(结束)组合

Python 面向对象编程 五(结束)组合 组合 组合 组合是面向对象编程中另一个流行的概念,它与封装也有一定关系。简单地说,组成是指在一个对象中包含一个或多个对象,从而形成一个真实世界的对象。包含其他类对象的类称为…...

基于微信小程序的校园访客登记系统

基于微信小程序的校园访客登记系统 功能列表 用户端功能 注册与登录 :支持用户通过手机号短信验证码注册和登录。个人资料管理 :允许用户编辑和更新个人信息及其密码。站内信消息通知:通知公告。来访预约:提交来访预约支持车牌…...

docker 部署mysql8

在Docker中部署MySQL 8是一个相对简单的过程。以下是基本的步骤: 拉取MySQL 8镜像: 使用Docker命令拉取最新的MySQL 8镜像: docker pull registry.openanolis.cn/openanolis/mysql:8.0.30-8.6创建并运行MySQL容器: 创建并运行MySQ…...

聊一聊 C#前台线程 如何阻塞程序退出

一:背景 1. 讲故事 这篇文章起源于我的 C#内功修炼训练营里的一位朋友提的问题:后台线程的内部是如何运转的 ? ,犹记得C# Via CLR这本书中 Jeffery 就聊到了他曾经给别人解决一个程序无法退出的bug,最后发现是有一个 Backgrond…...

【编译原理】往年题汇总(山东大学软件学院用)

🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀编译原理_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前言 2. …...

【原创学习笔记】近期项目中使用的西门子V20变频器总结(上篇)

现场V20 22kW变频器如图所示 进线分别为L1,L2,L3,PE线,出现分别为U,V,W接电机 在西门子官网查询手册后,查询可知可以通过多种方式控制变频器,比如:面板(BOP)控制,端子(NPN/PNP&…...

IndexOf Apache Web For Liunx索引服务器部署及应用

Apache HTTP Server 是一款广泛使用的开源网页服务器软件,它支持多种协议,包括 HTTP、HTTPS、FTP 等 IndexOf 功能通常指的是在一个目录中自动生成一个索引页面的能力,这个页面会列出该目录下所有的文件和子目录。比如网上经常看到的下图展现的效果,那么接下来我们就讲一下…...

Pytorch | 利用PI-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击

Pytorch | 利用PI-FGSM针对CIFAR10上的ResNet分类器进行对抗攻击 CIFAR数据集PI-FGSM介绍背景和动机算法原理算法流程 PI-FGSM代码实现PI-FGSM算法实现攻击效果 代码汇总pifgsm.pytrain.pyadvtest.py 之前已经针对CIFAR10训练了多种分类器: Pytorch | 从零构建AlexN…...

Casino Royale靶场wp

0x00 下载安装 https://download.vulnhub.com/casinoroyale/CasinoRoyale.ova 导入vmware启动 0x01 主机信息收集 0x02目录扫描 index.php 获取到一个域名 修改本地hosts 添加一行 路径:C:\Windows\System32\drivers\etc 192.168.2.20 casino-royale.local 点击…...

c/c++ 无法跳转定义

背景 对于嵌入式开发离不开交叉编译工作,采用vccode远程到虚拟机开发来说,总会遇到一个函数跳转问题。下面针对运用开发如何设置vscode保证函数能正确跳转大函数定义。 一、安装c/c插件 安装C/C Extension Pack插件,这插件包含有几个插件。…...

4.5 数据表的外连接

本次课程我们将继续的学习数据表的连接。因为数据表的连接是分为内连接和外连接的。内连接的语法,还有一些练习,我们都是学习到了。那么本次课程咱们就开始学习数据表的外连接语法。首先我来解释一下为什么要使用外连接这种语法。咱们首先看一条记录&…...

请购单一直提示需求部门不能为空无法提交

终于发现了它的逻辑。用户很多次反馈,提交请购单时,提示需求部门不能为空,既使选择了需求部门,保存时,神奇的是会清空掉部门的信息,提交时就会有错误提示出来。 原因:光选择单头上的需求部门是…...

Jenkins基础教程

Jenkins介绍 Jenkins 是一款开源的持续集成(CI)和持续交付(CD)工具,在软件开发和自动化部署流程中发挥着关键作用。 1.背景和起源 它最初是由 Sun Microsystems 公司的一名工程师开发的 Hudson 项目,后来…...

如何配置 Java 环境变量:设置 JAVA_HOME 和 PATH

目录 一、什么是 Java 环境变量? 二、配置 Java 环境变量 1. 下载并安装 JDK 2. 配置 JAVA_HOME Windows 系统 Linux / macOS 系统 3. 配置 PATH Windows 系统 Linux / macOS 系统 4. 验证配置 三、常见问题与解决方案 1. 无法识别 java 或 javac 命令 …...

深入解析 Pytest 钩子函数及二次开发过程

关注开源优测不迷路 大数据测试过程、策略及挑战 测试框架原理,构建成功的基石 在自动化测试工作之前,你应该知道的10条建议 在自动化测试中,重要的不是工具 在 Pytest 测试框架中,钩子函数(Hooks)是一种强…...

http 请求总结get

关于get请求传递body的问题 错误代码 有400 , 415 等情况 <!doctype html><html lang"zh"><head><title>HTTP Status 400 – 错误的请求</title><style type"text/css">body {font-family:Tahoma,Arial,sans-seri…...

漏洞扫描:网络安全的 “体检” 与 “防护指南”

在当今数字化时代&#xff0c;网络安全如同守护城堡的坚固城墙&#xff0c;而漏洞扫描则是检查城墙是否存在缝隙与薄弱环节的重要手段。那么&#xff0c;究竟什么是漏洞扫描&#xff1f;又该如何进行呢&#xff1f; 什么是漏洞扫描&#xff1f; 漏洞扫描是一种安全检测过程&a…...

《Vue进阶教程》第二十七课:实现侦听对象

往期内容&#xff1a; 《Vue进阶教程》第十六课&#xff1a;深入完善响应式系统之单例模式 《Vue进阶教程》第十七课&#xff1a;支持分支切换 《Vue进阶教程》第十八课&#xff1a;避免死循环 《Vue进阶教程》第十九课&#xff1a;computed初步实现 《Vue进阶教程》第二十…...

【Linux 网络 (五)】Tcp/Udp协议

Linux 网络 一前言二、Udp协议1&#xff09;、Udp协议特点2&#xff09;、Udp协议格式3&#xff09;、Udp报文封装和解包过程4&#xff09;、UDP的缓冲区 三、TCP协议1&#xff09;、TCP协议特点2&#xff09;、TCP协议格式1、4位首部长度、源端口、目的端口2、16位窗口大小3、…...

算法工程化工程师

算法工程化工程师是一种结合算法研究与工程开发能力的技术职位&#xff0c;主要职责是将算法从理论研究到实际落地&#xff0c;应用到各种工业或商业场景中。以下是关于这个职位的一些核心内容&#xff1a; 核心职责&#xff1a; 算法实现与优化&#xff1a; 将数学模型或算法…...

信息系统管理师试题-转型升级

1.3.转型升级 战略转型升级是对组织的长期发展方向、运行模式、组织战略、组织方式、资源配置方式、祖师文化等进行全方位升级变革。下列对战略转型升级的描述错误的是&#xff08;&#xff09; A大多数组织的转型主要是战略转型 B组织转型升级首先要解决的是战略选择问题 C组织…...

mysql三种读取模式(普通、流式、游标)

在与MySQL数据库交互时&#xff0c;数据的读取方式有多种选择&#xff0c;包括流式读取、游标读取和普通读取。每种方式都有其独特的原理、优势和劣势。本文将对这三种读取方式进行详细介绍&#xff0c; 1. 普通读取 介绍 普通读取是指通过JDBC的Statement或PreparedStateme…...

月子会所ERP管理云平台 GetData.ashx SQL注入致RCE漏洞复现

0x01 产品简介 月子会所ERP管理云平台是武汉金同方科技有限公司专为为母婴服务行业提供信息化解决方案,是结合行业顶级月子中心相关企业需求开发的一套综合性管理软件。该系统全面管控月子中心经营过程中的各个环节,提高总店及分店月子中心管理水平,规范月子中心从业人员操作…...

Ubuntu22.10/22.04 autoinstall--OK

第一步:建立ubuntu22.04 jammy apt本地源(见本博主对应栏) --------------------------------------------------------------------------------------- ubuntu22.04 grub配置: menuentry Ubuntu22.04-autoinstall(UEFI) --id UBUNTU22.04-autoinstall { echo "…...

操作系统之同步与互斥的基本概念

1. 同步的基本概念 定义&#xff1a;同步是指在多个并发执行的进程或线程之间协调其行为&#xff0c;以使它们能够正确地相互合作。在计算机科学中&#xff0c;同步通常指对共享资源进行访问控制&#xff0c;以避免竞争条件和死锁等问题。 实现方式&#xff1a;为了实现同步&a…...

【ANGULAR网站开发】初始环境搭建

1. 初始化angular项目 1.1 创建angular项目 需要安装npm和nodejs&#xff0c;这边不在重新安装 直接安装最新版本的angular npm install -g angular/cli安装指定大版本的angular npm install -g angular/cli181.2 启动angular 使用idea启动 控制台启动 ng serve启动成功…...

[青少年CTF练习平台]Lihua‘s for

下载附件之后直接IDA启动 查看dword_403040指向的内容&#xff0c;全是数据&#xff0c;提取出来 分析完成写脚本 flag "" temdata [0x00000066, 0x0000006D, 0x00000063, 0x00000064, 0x0000007F, 0x00000064, 0x00000032, 0x00000036, 0x0000006A, 0x000000…...

WebRTC服务质量(12)- Pacer机制(04) 向Pacer中插入数据

WebRTC服务质量&#xff08;01&#xff09;- Qos概述 WebRTC服务质量&#xff08;02&#xff09;- RTP协议 WebRTC服务质量&#xff08;03&#xff09;- RTCP协议 WebRTC服务质量&#xff08;04&#xff09;- 重传机制&#xff08;01) RTX NACK概述 WebRTC服务质量&#xff08;…...

css文字折行以及双端对齐实现方式

使用flex布局后&#xff0c;文字超出容器部分不会自动折行了。实现代码如下&#xff1a; <el-row><el-col :span"24"><span class"label">姓名</span><span class"content">{{name}}</span></el-col>…...

AI智能养站神器-SEO助理原创文章批量生成发布工具

很多站长最头疼的就是网站每天的内容更新&#xff0c;因为不知道写什么&#xff0c;采集被人的文章又会被定义为抄袭&#xff0c;而且现在伪原创已经没有多大的效果了&#xff0c;所以今天给大家分享的就是一款AI智能养战神器-SEO助理原创文章批量生成发布工具。 这款工具支持…...