opencv 常用的滤波器及应用技巧
常用滤波器:
- 标准滤波器(邻域平均法):该滤波器是所有滤波器里最简单的一种,输出的像素值由输入的滤波核所覆盖的像素值均值决定(每个邻域像素对其贡献的权重是相同的)。
- 高斯滤波:该滤波器通过使用高斯核与输入矩阵的每个元素进行卷积运算,然后将卷积结果赋给输出像素。在一维情况下,中间的元素具有最大的权重值,其邻域权重按空间距离衰减。
- 中值滤波:中值滤波器是一种非线性滤波器,常用于消除图像中的椒盐噪声。它以被滤波像素为中心设置一个确定的邻域,然后将邻域内的像素中值作为滤波输出值。这样可以保留边缘的尖锐度,但会洗去均匀介质区域中的纹理。
- 双边滤波器(Bilateral):这种滤波器也是为了平滑图像,但与前述滤波器的主要目的不同。双边滤波器在考虑像素灰度值的同时,还会考虑像素的空间位置,因此可以更好地保护边缘信息。
应用技巧:
- 标准滤波器:这种滤波器非常适合用于图像的平滑处理,比如去除图像中的一些高频噪声。
- 高斯滤波:高斯滤波器在图像处理和计算机视觉中非常常见,它主要用于图像的平滑处理,并且对于卷积计算过程有良好的线性性质,可以降低算法的时间复杂度。
- 中值滤波:中值滤波器主要用于去除图像中的椒盐噪声,同时尽量保留边缘信息。对于一些散射噪声的处理也非常理想。
- 双边滤波器:双边滤波器可以更好地保护边缘信息,在需要考虑图像细节和边缘保留的情况下,双边滤波器是一个很好的选择。
对应的函数:
- 标准滤波器(邻域平均法):
blur()
函数。 - 高斯滤波:
GaussianBlur()
函数。 - 中值滤波:
medianBlur()
函数。 - 双边滤波器(Bilateral):
bilateralFilter()
函数。
调参技巧:
- 标准滤波器和双边滤波器:这些滤波器的参数主要是邻域大小和标准差。邻域大小控制了滤波器作用的范围,太大可能会导致边缘模糊,太小则可能无法平滑掉噪声。标准差则是控制邻域内像素值的权重,标准差越大,对远处像素的影响越大,滤波结果也就越平滑。
- 高斯滤波:高斯滤波的参数包括高斯核的大小和标准差。高斯核的大小决定了图像的模糊程度,太大或太小都可能无法达到理想效果。标准差则是控制图像中所有像素的权重衰减速度,标准差越大,对远处像素的影响越大,滤波结果也就越平滑。
- 中值滤波:中值滤波的参数主要是邻域大小。邻域大小是指进行中值滤波时,需要考虑的像素数量。邻域越大,可以滤除更多的噪声,但可能会导致边缘模糊。
-
双边滤波(Bilateral Filter)是一种非线性的滤波方法,它同时考虑了图像的空间邻近度和像素值相似度,从而达到保边去噪的目的。
双边滤波器之所以能够做到在平滑去噪的同时还能够很好的保存边缘,是由于其滤波器的核由两个函数生成:
- 一个函数由像素欧式距离决定滤波器模板的系数。这个函数反映的是像素的空间邻近度,即距离近的像素点在滤波结果中影响更大。
- 另一个函数由像素的灰度差值决定滤波器的系数。这个函数反映的是像素值的相似度,即相似度高的像素点在滤波结果中影响更大。
相关文章:
opencv 常用的滤波器及应用技巧
常用滤波器: 标准滤波器(邻域平均法):该滤波器是所有滤波器里最简单的一种,输出的像素值由输入的滤波核所覆盖的像素值均值决定(每个邻域像素对其贡献的权重是相同的)。高斯滤波:该…...

【PyTorch攻略(1/7)】 张量基本语法
一、说明 Tensor 是一种特殊的数据结构,与数组和矩阵非常相似。在 PyTorch 中,我们使用张量对模型的输入和输出以及模型的参数进行编码。 张量类似于 NumPy 和 ndarray,除了张量可以在 GPU 或其他硬件加速器上运行。事实上,张量和…...

什么是Jmeter ?Jmeter使用的原理步骤是什么?
1.1 什么是 JMeter Apache JMeter 是 Apache 组织开发的基于 Java 的压力测试工具。用于对软件做压力测试,它最初被设计用于 Web 应用测试,但后来扩展到其他测试领域。 它可以用于测试静态和动态资源,例如静态文件、Java 小服务程序、CGI 脚…...
Mac 通过 brew安装的 ffmpeg 切换版本
现有版本为 6.x ,想切换至 5.x 版本 先安装 5.x 版本 brew install ffmpeg5安装完成后会出现具体版本号,也可以自己指定例如 brew install ffmpeg5.1.3 配置环境变量 .zshrc vi ~/.zshrc添加如下命令 export PATH/usr/local/Cellar/ffmpeg5/5.1.3/bin:…...

【Spring Boot】实战:实现数据缓存框架
🌿欢迎来到@衍生星球的CSDN博文🌿 🍁本文主要学习【Spring Boot】实现数据缓存框架 🍁 🌱我是衍生星球,一个从事集成开发的打工人🌱 ⭐️喜欢的朋友可以关注一下🫰🫰🫰,下次更新不迷路⭐️💠作为一名热衷于分享知识的程序员,我乐于在CSDN上与广大开发者…...
MySQL数据类型之JSON
MySQL数据类型之JSON SON类型是MySQL 5.7版本新增的数据类型,用好JSON数据类型可以有效解决很多业务中实际问题。 使用JSON数据类型,推荐用MySQL 8.0.17以上的版本,性能更好,同时也支持Multi-Valued Indexes; JSON数…...

nginx_0.7.65_00截断_nginx解析漏洞
nginx_0.7.65_00截断_nginx解析漏洞 文章目录 nginx_0.7.65_00截断_nginx解析漏洞1 环境搭建1 解压nginx_0.7.652 双击启动,如有闪退,端口占用的情况,在conf文件nginx.conf修改一下端口号3 查看一下进程有nginx4 启动成功访问127.0.0.1:18080…...
建站百科:HTTP返回状态码是什么?
HTTP返回状态码是用于表示HTTP响应状态的三位数字代码。HTTP状态码由6位数字组成,每3位数字代表一种状态,如200表示成功,404表示未找到资源,500表示服务器内部错误等。 常用的状态码包括: 200:正常的网页…...
人像摄影简记
文章目录 光影室外顺光室内顺光室外逆光室内逆光散射光 姿势错误姿势避免摆拍技巧场景互动抓拍利用道具 构图构图目的构图基础概念画幅:横画幅和竖画幅景别:全身、大半身及半身、特写拍摄高度:平拍、俯拍和仰拍拍摄方位:正面、前侧…...

【Java 基础篇】Java 实现模拟斗地主游戏
欢迎阅读本篇博客,在这篇博客中,我们将详细讲解如何使用Java编写一个简单的模拟斗地主游戏。这个项目将帮助您了解Java编程中的一些基本概念,如面向对象编程、集合框架的使用、随机数生成等。 引言 斗地主是一种非常受欢迎的纸牌游戏&#…...

计算机专业毕业设计项目推荐09-个人医疗系统(Spring+Js+Mysql)
个人医疗系统(SpringJsMysql) **介绍****系统总体开发情况-功能模块****各部分模块实现** 介绍 本系列(后期可能博主会统一为专栏)博文献给即将毕业的计算机专业同学们,因为博主自身本科和硕士也是科班出生,所以也比较了解计算机专业的毕业设计流程以及…...
安卓Compose(一)
为什么学习安卓Compose? 安卓Compose是一个相对新的UI工具包,它的出现为安卓应用程序开发带来了一系列的好处。下面是一些学习Compose的理由: 声明式UI 与传统的安卓XML布局相比,Compose使用了声明式的UI编程范例。这意味着你可以…...

【Linux学习】03Linux用户和权限
Linux(B站黑马)学习笔记 01Linux初识与安装 02Linux基础命令 03Linux用户和权限 文章目录 Linux(B站黑马)学习笔记前言03Linux用户和权限认知root用户root用户(超级管理员)su和exit命令sudo命令 用户、用户…...
LeetCode 面试题 05.04. 下一个数
文章目录 一、题目二、Java 题解2.1 求大数:2.2 求小数: 一、题目 下一个数。给定一个正整数,找出与其二进制表达式中1的个数相同且大小最接近的那两个数(一个略大,一个略小)。 示例1: 输入: n…...

SDXL prompt 笔记
模型 模型有两个,分别是 stable-diffusion-xl-base-1.0、stable-diffusion-xl-refiner-1.0。 base 模型是用来做文生图,refiner 模型是用来做图生图的。 SDXL 模型之 base、refiner 和 VAE_云水木石的博客-CSDN博客 分辨率 默认是1024*1024…...
使用Redis管道进行查询接口性能优化
一、引入 在我们的正常项目开发过程中,我们会通过Redis缓存数据,来帮我们进行异步任务,分担外部的请求压力 但是Redis缓存也有一定的限制,因为我们在向请求过来时,Redis客户端都要向服务端发送一次请求,相应…...

初学vue.js
准备Vue.js环境 ① 下载环境: javaScript语言的程序包:外部js文件 对于Vue来说,导入Vue的外部js文件就能够使用Vue框架了。 Vue框架的js文件获取: 官网提供的下载地址:https://cdn.jsdelivr.net/npm/vue/dist/vue.js ②导入环境…...
React的thunk中间件
Thunk 是一种中间件,它可以在 Redux 中处理异步操作。Thunk 中间件允许你在 action 中返回一个函数,而不仅仅是一个普通的 action 对象。这个返回的函数可以接收 dispatch 和 getState 作为参数,并且可以在函数内部进行异步操作。当使用 Thun…...
数组初学者向导:使用Python从零开始制作经典战舰游戏
引言 战舰游戏,一个广受欢迎的经典游戏,为玩家提供了策略与猜测的完美结合。这个游戏的核心思想是通过猜测敌方船只的位置并尝试击沉它们来赢得比赛。在这篇文章中,我们将使用Python语言和数组来构建这款游戏,让你更加了解数组的…...

【STM32】IAP升级 预备知识
IAP(In Application Programming)简介 Flash够大的情况下,上电后的程序通过修改 MSP 的方式,可以在一块Flash上存在多个功能差异的程序。 IAP是为了在执行正常功能前,为了升级功能,提前运行的一段程序。这…...
【位运算】消失的两个数字(hard)
消失的两个数字(hard) 题⽬描述:解法(位运算):Java 算法代码:更简便代码 题⽬链接:⾯试题 17.19. 消失的两个数字 题⽬描述: 给定⼀个数组,包含从 1 到 N 所有…...

微服务商城-商品微服务
数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...

WPF八大法则:告别模态窗口卡顿
⚙️ 核心问题:阻塞式模态窗口的缺陷 原始代码中ShowDialog()会阻塞UI线程,导致后续逻辑无法执行: var result modalWindow.ShowDialog(); // 线程阻塞 ProcessResult(result); // 必须等待窗口关闭根本问题:…...

云安全与网络安全:核心区别与协同作用解析
在数字化转型的浪潮中,云安全与网络安全作为信息安全的两大支柱,常被混淆但本质不同。本文将从概念、责任分工、技术手段、威胁类型等维度深入解析两者的差异,并探讨它们的协同作用。 一、核心区别 定义与范围 网络安全:聚焦于保…...
flow_controllers
关键点: 流控制器类型: 同步(Sync):发布操作会阻塞,直到数据被确认发送。异步(Async):发布操作非阻塞,数据发送由后台线程处理。纯同步(PureSync…...

如何把工业通信协议转换成http websocket
1.现状 工业通信协议多数工作在边缘设备上,比如:PLC、IOT盒子等。上层业务系统需要根据不同的工业协议做对应开发,当设备上用的是modbus从站时,采集设备数据需要开发modbus主站;当设备上用的是西门子PN协议时…...

深入解析光敏传感技术:嵌入式仿真平台如何重塑电子工程教学
一、光敏传感技术的物理本质与系统级实现挑战 光敏电阻作为经典的光电传感器件,其工作原理根植于半导体材料的光电导效应。当入射光子能量超过材料带隙宽度时,价带电子受激发跃迁至导带,形成电子-空穴对,导致材料电导率显著提升。…...

【版本控制】GitHub Desktop 入门教程与开源协作全流程解析
目录 0 引言1 GitHub Desktop 入门教程1.1 安装与基础配置1.2 核心功能使用指南仓库管理日常开发流程分支管理 2 GitHub 开源协作流程详解2.1 Fork & Pull Request 模型2.2 完整协作流程步骤步骤 1: Fork(创建个人副本)步骤 2: Clone(克隆…...

C++中vector类型的介绍和使用
文章目录 一、vector 类型的简介1.1 基本介绍1.2 常见用法示例1.3 常见成员函数简表 二、vector 数据的插入2.1 push_back() —— 在尾部插入一个元素2.2 emplace_back() —— 在尾部“就地”构造对象2.3 insert() —— 在任意位置插入一个或多个元素2.4 emplace() —— 在任意…...