【OpenCV学习】第5课:图像模糊(均值滤波,高斯滤波)

news2024/10/5 21:15:24

参考文章链接:https://blog.csdn.net/qq_30460949/article/details/121990114

仅自学做笔记用,后续有错误会更改

理论
1.Smooth/blur是图像处理中最简单和常用的操作之一
2.使用该操作的原因之一就是为了给图像预处理的时候减低噪声
3.使用Smooth/Blur操作其背后是数学的卷积计算
4.通常卷积算子计算都是线性操作,所以又叫线性滤波

均值滤波
均值滤波其原理图如下
在这里插入图片描述

高斯滤波
高斯滤波,这是一个建立在高斯正态分布基础上的滤波器。

一维高斯函数:在这里插入图片描述

可以看到,G(x)的跟sigma的取值有极大的关系。

sigma取值越大,图像越平缓
sigma取值越小,图像越尖锐
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
从以上描述中我们可以看出,高斯滤波模板中最重要的参数就是高斯分布的标准差σ。它代表着数据的离散程度,如果σ较小,那么生成的模板中心系数越大,而周围的系数越小,这样对图像的平滑效果就不是很明显;相反,σ较大时,则生成的模板的各个系数相差就不是很大,比较类似于均值模板,对图像的平滑效果就比较明显。通过下面的一维高斯分布图也可验证上述观点。
在这里插入图片描述

二维高斯函数:在这里插入图片描述
G(x,y)在x轴y轴上的分布是一个突起的帽子的形状。这里的sigma可以看作两个值,一个是x轴上的分量sigmaX,另一个是y轴上的分量sigmaY。对图像处理可以直接使用sigma并对图像的行列操作,也可以用sigmaX对图像的行操作,再用sigmaY对图像的列操作。它们是等价的:

当sigmaX和sigmaY取值越大,整个形状趋近于扁平
当sigmaX和sigmaY取值越小,整个形状越突起
在这里插入图片描述
高斯滤波原理就是将上图的二维正态分布应用在二维的矩阵上,G(x,y)的值就是矩阵上的权值,将得到的权值进行归一化,将权值的范围约束在[0,1]之间,并且所有的值的总和为1。

假设一个33的核,sigma取值1.5以及sigma取5.0,归一化后其权值分布分别是:
在这里插入图片描述
假设一个5
5的核,sigma取值1.5以及sigma取5.0,经归一化后其权值分布分别是:
在这里插入图片描述
可以看到,权值的分布是以中间高四周低来分布的。并且距离中心越远,其对中心点的影响就越小,权值也就越小。
总结:
核大小固定,sigma值越大,权值分布越平缓。因此邻域各点值对输出值的影响越大,最终结果造成图像越模糊
核大小固定,sigma值越小,权值分布越突起。因此邻域各点值对输出值的影响越小,图像变化越小。假如中心点权值为1,其他点权值为0,最终结果是图像没有任何变化。
sigma固定时,核越大图像越模糊
sigma固定时,核越小图像变化越小

相关API
均值模糊:
blur(Mat src, Mat dst, Size(xredius,yradius), Point(-1,-1));
高斯模糊:
GaussianBlur(Mat src,Mat dst,Size(11,11), sigmax,sigmay);其中Size(x,y)的x和y必须是正数而且是奇数

代码示例

Mat srcImageMat,dstImageMat;
srcImageMat = imread(...);

// 均值滤波 3*3的格子(也就是核), 后边Point(-1,-1)表示操作的其中心点
// blur(srcImageMat, dstImageMat, Size(3,3), Point(-1,-1));
// 均值滤波 1*15的格子, 也就是仅对Y轴进行模糊
// blur(srcImageMat, dstImageMat, Size(1,15), Point(-1,-1));
// 均值滤波 15*1的格子, 也就是仅对X轴进行模糊(也就是电影镜头横向移动时出现的模糊)
// blur(srcImageMat, dstImageMat, Size(15,1), Point(-1,-1));

// 高斯滤波 核固定时,后边两个sigma值越大越模糊,  后边sigma值固定时, 核越大也越模糊
GaussianBlur(srcImageMat, dstImageMat,Size(5,5), 11, 11);

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

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

相关文章

ContentProvider与ContentResolver

目录:一、什么是ContentProvider:二、如何使用ContentProvider:第一步.创建类继承ContentProvider:第二步.注册ContentProvider:三、URI:1.常用方法:2.解析URI:(1&#x…

Android Gradle 学习笔记(二)环境安装

1. 官网安装 Gradle 安装地址:Gradle | Installation 最新的 Gradle 版本是 7.6, 需要 Java 8及以上的版本支持,官网有两种版本可下载: 二进制版本完全版本(源码 文档) 一般情况下,下载二进…

助力企业降本增效,「WorkPlus SE专业版」正式发布!

移动互联网时代,数字化成为了企业提质降本增效的价值路径。大中小型企业积极主动地借助各种在线办公产品,实现沟通协作和运营管理的优化升级。 随着企业规模的扩大和办公业态多样化发展,会面临着业务流程繁杂、数据利用率低、IT成本高、泄密…

RFID警用装备管理系统-公安警用装备管理可视化系统

一、方案背景 我国警用装备物资种类多、数量大、价值高,还包含枪支、弹药、爆炸物等需要重点监管的物资,在公安机关应对紧急情况、处理突发事件过程中发挥了极为重要的作用。但是,由于缺乏有效的信息化管理手段,还存在管理方式落后…

Tealium 分析

文章目录1.0 调用流程1.1 初始化流程1.2 发送数据流程2.0 Tealium 的设计2.1 总体设计2.1.1 Tealium Core2.1.2 Visitor2.1.3 Crash reporter2.1.4 Ad identifler2.1.5 Lifecycle2.1.6 Location2.1.7 InstallReferrer2.1.8 Hosteddatalayer2.1.8 Dispatcher2.2 网络设计2.3 本地…

黄菊华老师,Java Servlet毕业设计毕设辅导课(4):Servlet 实例

Servlet 实例 Servlet 是服务 HTTP 请求并实现 javax.servlet.Servlet 接口的 Java 类。Web 应用程序开发人员通常编写 Servlet 来扩展 javax.servlet.http.HttpServlet,并实现 Servlet 接口的抽象类专门用来处理 HTTP 请求。 Hello World 示例代码 下面是 Servl…

为什么工业设计公司价格这么高?

随着经济的不断增长,各种工业设计公司逐渐出现,但价格不同,有些价格高,有些价格低,让一些人到处比较价格,低价格压低别人的高价格。有些人会想,为什么工业设计公司在设计产品时价格这么高&#…

ORB-SLAM2 ---- Tracking::UpdateLastFrame函数

目录 1.函数作用 2.步骤 3.code 4.函数解释 4.1 利用参考关键帧更新上一帧在世界坐标系下的位姿 4.2 对于双目或rgbd相机,为上一帧生成新的临时地图点 1.函数作用 更新上一帧位姿,在上一帧中生成临时地图点。 单目情况:只计算了上一帧…

【富文本编辑器】简记功能:neditor上传操作时提交额外数据

目录 编辑器下载(本文使用版本v2.1.19) 功能需求 解决思路 相关代码 调用实例的html neditor.config.js(搜索修改内容:/* 设置额外请求参数 */) 完成,如有其它方法,欢迎一起讨论 编辑器下…

使用 Fluent Bit 实现云边统一可观测性

本文基于 KubeSphere 可观测性与边缘计算负责人霍秉杰在北美 KubeCon 的 Co-located event Open Observability Day 闪电演讲的内容进行整理。 整理人:米开朗基杨、大飞哥 Fluent Operator 简介 2019 年 1 月 21 日,KubeSphere 社区为了满足以云原生的方…

NX上配置TLD的环境---对opencv的版本没有要求

一、TLD工程编译及运行 1.1 源码下载 网上的TLD有两个版本,一个是Zdenek Kalal自己使用matlabvs混合编程实现的,另外一个是 arthurv利用c和opencv实现的。 我利用的是arthurv版本的Tracking-Learning-Detection 连接:https://github.com/al…

基于Android平台的手机安全卫士的设计与实现

目 录 第1章 引言 1 1.1 研究背景及意义 1 1.2 安全软件的现状 1 1.3 本文主要工作 2 1.4 本文的组织结构 2 第2章 Android的相关技术介绍及分析 3 2.1 搭建Android开发环境 3 2.1.1 搭建Ubuntu系统下Java开发环境 3 2.1.2 搭建Ubuntu系统下Android开发环境 3 2.2 Android项目目…

「企企通」完成Pre-D轮融资,加速采购供应链工业软件和 SaaS 网络生态构建

企企通作为领先的采购供应链工业软件和SaaS生态平台,在一年内再次宣布获得Pre-D轮融资,全年合计融资额达数亿元人民币,目前还有意向投资机构在进行,并开始启动IPO的筹备工作。本轮投资由华映资本独家投资。华映资本是企企通C2轮融…

flutter系列之:flutter中的变形金刚Transform

文章目录简介Transform简介Transform的使用总结简介 虽然我们在开发APP的过程中是以功能为主,但是有时候为了美观或者其他的特殊的需求,需要对组件进行一些变换。在Flutter中这种变换就叫做Transform。 flutter的强大之处在于,可以对所有的…

IBM MQ 通道

一,定义 通道是分布式队列管理器在IBM MQ MQI 客户端和IBM MQ服务器之间或两个IBM MQ服务器之间使用的逻辑通信链接。 通道是提供从一个队列管理器到另一个队列管理器的通信路径的对象。通道在分布式队列中用于将消息从一个队列管理器移动到另一个队列管理器&#x…

计算机网络-应用层详解(持续更新中)

应用层概述 应用层是解决通过应用进程的交互来实现特定网络应用的问题。 应用层是计算机网络体系结构的最顶层,是设计和建立计算机网络的最终目的,也是计算机网络中发展最快的部分。 早期基于文本的应用(电子邮件、远程登录、文件传输、新…

百度联合行业头部企业新发5个行业大模型,大模型产业落地路径愈发清晰

本文已在【飞桨PaddlePaddle】公众号平台发布,详情请戳链接:百度联合行业头部企业新发5个行业大模型,大模型产业落地路径愈发清晰 11月30日,由深度学习技术与应用国家工程研究中心主办、飞桨承办的WAVE SUMMIT2022深度学习开发者…

WLAN AP安全策略中WPA认证与WPA2认证的差异

一、安全策略WPA认证(PSK认证TKIP加密)的案例 组网需求: 设备作为FAT AP,为用户提供WLAN服务,用户可以搜索到名为huawei的无线网络,采用的安全策略为WPA-PSK认证TKIP加密的方式。 组网图如下:…

3 内存访问

内存访问 1 字的存储 寄存器中:16位寄存器存一个字。高8位放高位字节,低8位当低位字节。 内存中:内存单元是字节单元,一个字要用2个连续的内存单元保存。低位字节保存在低地址内存单元,高位字节保存在高地址内存单元…

vmware上的centos8没有网络

目录一、先了解虚拟机的三种网络模式二、目前的网络模式和网络状况三、 解决网络不可用问题一、先了解虚拟机的三种网络模式 虚拟机的三种网络模式 二、目前的网络模式和网络状况 我的虚拟机网络配置 我们要将虚拟机和本机在同一个局域网络里才能入网 进入cmd输入ipconfig…