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

opencv-32 图像平滑处理-高斯滤波cv2.GaussianBlur()

在进行均值滤波和方框滤波时,其邻域内每个像素的权重是相等的。在高斯滤波中,会将中心点的权重值加大,远离中心点的权重值减小,在此基础上计算邻域内各个像素值不同权重 的和。

基本原理

在高斯滤波中,卷积核中的值不再都是 1。例如,一个 3×3 的卷积核可能如图 7-20 所示:

在这里插入图片描述

在图 7-21 中,针对最左侧的图像内第 4 行第 3 列位置上像素值为 226 的像素点进行高斯卷积,其运算规则为将该点邻域内的像素点按照不同的权重计算和。

在这里插入图片描述
在实际计算时,使用的卷积核如图 7-22 中的卷积核所示。

在这里插入图片描述

使用图 7-22 中的卷积核,针对第 4 行第 3 列位置上的像素值为 226 的像素点进行高斯滤
波处理,计算方式为:

在这里插入图片描述
在实际使用中,高斯滤波使用的可能是不同大小的卷积核。例如,图 7-23 中分别是 3×3、5×5、7×7 大小的卷积核。在高斯滤波中,核的宽度和高度可以不相同,但是它们都必须是奇数。

在这里插入图片描述
每一种尺寸的卷积核都可以有多种不同形式的权重比例。

例如,同样是 5×5 的卷积核,可能是图 7-24 中所示的两种不同的权重比。

在这里插入图片描述
在不同的资料中,卷积核有多种不同的表示方式。它们可能如图 7-23 所示写在一个表格内,也可能如图 7-24 所示写在一个矩阵内。

在实际计算中,卷积核是归一化处理的,这种处理可以表示为图 7-23 最左侧的小数形式的卷积核,也可以表示为如图 7-24 所示的分数形式。
也要注意,在一些资料中,给出的卷积核并没有进行归一化,这时的卷积核可能表示为图 7-23 中间和右侧所示的卷积核,这样的卷
积核是为了说明问题用的,实际使用时往往需要进行归一化。严格来讲,使用没有进行归一化处理的卷积核进行滤波,得到的结果往往是错误的

在 OpenCV 中,实现高斯滤波的函数是 cv2.GaussianBlur(),该函数的语法格式是:

dst = cv2.GaussianBlur( src, ksize, sigmaX, sigmaY, borderType )

式中:
 dst 是返回值,表示进行高斯滤波后得到的处理结果。

 src 是需要处理的图像,即原始图像。它能够有任意数量的通道,并能对各个通道独立
处理。图像深度应该是 CV_8U、CV_16U、CV_16S、CV_32F 或者 CV_64F 中的一种。

 ksize 是滤波核的大小。滤波核大小是指在滤波处理过程中其邻域图像的高度和宽度。
需要注意,滤波核的值必须是奇数。

 sigmaX 是卷积核在水平方向上(X 轴方向)的标准差,其控制的是权重比例。

例如,图 7-25 中是不同的 sigmaX 决定的卷积核,它们在水平方向上的标准差不同。

在这里插入图片描述
sigmaY 是卷积核在垂直方向上(Y 轴方向)的标准差。如果将该值设置为 0,则只采用sigmaX 的值;如果 sigmaX 和 sigmaY 都是 0,则通过 ksize.width 和 ksize.height 计算得到。
其中:
 sigmaX = 0.3×[(ksize.width-1)×0.5-1] + 0.8
 sigmaY = 0.3×[(ksize.height-1)×0.5-1] + 0.8

 borderType 是边界样式,该值决定了以何种方式处理边界。一般情况下,不需要考虑该值,直接采用默认值即可。

在该函数中,sigmaY 和 borderType 是可选参数。sigmaX 是必选参数,但是可以将该参数设置为 0,让函数自己去计算 sigmaX 的具体值。

官方文档建议显式地指定 ksize、sigmaX 和 sigmaY 三个参数的值,以避免将来函数修改后可能造成的语法错误。

当然,在实际处理中,可以显式指定 sigmaX 和 sigmaY 为默认值 0。因此,函数 cv2.GaussianBlur()的常用形式为:

dst = cv2.GaussianBlur( src, ksize, 0, 0 )

实验:对噪声图像进行高斯滤波,显示滤波的结果。

代码如下:

import cv2
o=cv2.imread("lenaNoise.png")
r=cv2.GaussianBlur(o,(5,5),0,0)
cv2.imshow("original",o)
cv2.imshow("result",r)
cv2.waitKey()
cv2.destroyAllWindows()

运行结果:其中左图是原始图像,右图是高斯滤波后的处理
结果图像。
在这里插入图片描述

相关文章:

opencv-32 图像平滑处理-高斯滤波cv2.GaussianBlur()

在进行均值滤波和方框滤波时,其邻域内每个像素的权重是相等的。在高斯滤波中,会将中心点的权重值加大,远离中心点的权重值减小,在此基础上计算邻域内各个像素值不同权重 的和。 基本原理 在高斯滤波中,卷积核中的值不…...

Windows 环境Kubernetes安装

目录 前言 安装 Docker 安装 Kubernetes Windows 安装 kubectl 介绍 安装 开启 Kubernetes 前言 Docker作为当前最流行的容器化平台,为Kubernetes提供了强大的容器化技术基础。Kubernetes与Docker的结合,使得容器化应用程序在大规模集群中得以简…...

自建类ChatGPT服务:本地化部署与远程访问教程

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…...

常用SQL语句总结

SQL语句 文章目录 SQL语句1 SQL语句简介2 DQL(数据查询语句)3 DML(数据操纵语句)4 DDL(数据定义语句)5 DCL(数据控制语句)6 TCL(事务控制语句) 1 SQL语句简介…...

arm交叉编译lmbench

一、下载lmbench www.bitmover.com/lmbench 官网下载,http://www.bitmover.com/lmbench/lmbench3.tar.gz 我没有下载下来,找的别人的百度云下载 链接: https://pan.baidu.com/s/1tGo1clCqY-jQPN8G1eWSsg 提取码: f6jd 二、修改makefile 修改三个文件…...

ExtJs 7.7.0 下载方法与去除trial水印

背景 最近发现Sencha ExtJs发布了ExtJs7.7.0版本,立刻下载了SDK包,许多朋友不知如何下载,如何去除右上角的trial水印。本文讲下相关下载技巧与方法。 下载SDK 首先需要申请试用,申请地址如下,需要注意可能需要梯子&…...

Android11开发规划

文章目录 规划总结规划 提示:这里可以添加本文要记录的大概内容: 从本文开始,会介绍如何移植瑞芯微提供的Android11源码到自己的RK3568的板子上 下面是整个Android开发的规划: 包括以下部分: … 一、移植部分 下载编译瑞芯微提供的源码 瑞芯微原厂源码目录介绍...

活动隔断在现在酒店运用的方式

活动隔断是一种在酒店内部划分空间的方式,用于实现不同活动的隔离和隐私。现代酒店常用的活动隔断方式有以下几种: 1. 固定隔断:使用墙体、固定屏风或者板材等材料,将空间划分为不同的房间或区域。这种方式常用于划分客房、会议室…...

Jenkins工具系列 —— 插件 钉钉发送消息

文章目录 安装插件 Ding TalkJenkins 配置钉钉机器人钉钉APP配置项目中启动钉钉通知功能 安装插件 Ding Talk 点击 左侧的 Manage Jenkins —> Plugins ——> 左侧的 Available plugins Jenkins 配置钉钉机器人 点击 左侧的 Manage Jenkins ,拉到最后 钉…...

LeetCode 26 题:删除有序数组的重复项

思路 在写这一个题时,我突然想到了Python中的 set()函数可能会有大用处,便选择了用Python写。 set()函数可以将列表转化为集合,集合会保证元素的单一性,所以会自动删去相同字符。 …...

优雅地切换node版本(windows)

文章目录 1、下载并安装nvm2、nvm的使用3、处理npm版本与nodejs版本不匹配问题(通常不会有这个问题) 1、下载并安装nvm 卸载已安装的node:控制面板-程序-找到node并卸载 通常在控制面板中卸载后,nodejs目录、环境变量、注册表就自…...

反诈:吴明军、黄亮领导的WIN生活资金盘,大家警惕防范此类诈骗

消息已经证实!“米粒”无法变现,数以万计的会员深套“315万民商城”,维权艰难,血汗钱无法讨回。 其实这一点笔者并不感到太意外,因为万民商城资金传销盘的定性之前就已经发文揭露过,并反复提醒大家小心警惕…...

shell、bash的关系及bash的特性(一)

一、概念 shell是壳,是运行在终端中的文本互动程序。Shell相当于是一个翻译,把我们在计算机上的操作命令,翻译为计算机可识别的二进制命令,传递给内核,以便调用计算机硬件执行相关的操作;同时,计…...

【问题随记】

ubuntu 14.04源更新(sources.list) deb http://mirrors.aliyun.com/ubuntu/ trusty main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ trusty-security main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ trusty-update…...

Stable Diffusion AI绘画学习指南【常用模型,采样器介绍】

常用采样器、目前有20个采样步骤越多每个步之间的降噪越小,减少采样过程中的截断误差,结果越好 学微分方程求解器 Euler(最简单的采样器,采样过程中不加随机噪声,根据采样计划来执行每个步骤中的噪声,并使…...

pycharm——漏斗图

import pyecharts.options as opts from pyecharts.charts import Funnel""" Gallery 使用 pyecharts 1.1.0 参考地址: https://echarts.apache.org/examples/editor.html?cfunnel目前无法实现的功能:1、暂时无法对漏斗图的长宽等范围操作进行修改 ""…...

RISC-V基础之浮点指令(包含实例)

RISC-V体系结构定义了可选的浮点扩展,分别称为RVF、RVD和RVQ,用于操作单精度、双精度和四倍精度的浮点数。RVF/D/Q定义了32个浮点寄存器,f0到f31,它们的宽度分别为32位、64位或128位。当一个处理器实现了多个浮点扩展时&#xff0…...

前端生成图片验证码怎么做?

##题记:我们实现一个功能首先想一下我们需要做哪些工作,比如我们需要生成一个随机的图片验证码,我们需要一个就是点击事件获取验证码,通过接口我们去获取图片路径进行渲染就行,这里边还要牵扯一件事情就是获取一个随机…...

【Java】springboot框架 粮油质量溯源MES生产加工管理系统源码

粮油质量溯源MES生产加工管理系统源码,实现一物一码,全程追溯,正向追踪,逆向溯源。技术架构:spring bootmybatiseasyuimysql 。 粮油生产质量追溯系统实现种植主体、种植基地、生产计划、压榨、精炼、包装、销售、物料…...

macOS install redis遇到的bug(tar包,homebrew安装,守护进程redis.conf配置)

官网下载tar包再make install 首先是sudo make test的时候一直报 !!! WARNING The following tests failed: *** [err]: trim on SET with big value in tests/unit/type/string.tcl Expected [r memory usage key] < 42000 (context: type source line 478 file /usr/loca…...

【大模型公平性工程化落地指南】:20年AI架构师亲授3大可量化评估框架与5个避坑实战案例

第一章&#xff1a;大模型工程化中的模型公平性评估 2026奇点智能技术大会(https://ml-summit.org) 大模型在招聘筛选、信贷审批、司法辅助等高风险场景中部署前&#xff0c;必须系统性验证其对不同人口统计学群体&#xff08;如性别、种族、年龄&#xff09;的预测一致性。公…...

基于Docker的NextCloud与OnlyOffice无缝集成方案

1. 为什么需要NextCloud与OnlyOffice集成 如果你正在寻找一套私有化的协同办公解决方案&#xff0c;NextCloudOnlyOffice的组合绝对值得考虑。NextCloud作为开源的云存储平台&#xff0c;提供了文件管理、日历、联系人等基础功能&#xff0c;而OnlyOffice则是功能强大的在线文档…...

如何5分钟掌握WebPlotDigitizer:科研数据提取的终极免费工具指南

如何5分钟掌握WebPlotDigitizer&#xff1a;科研数据提取的终极免费工具指南 【免费下载链接】WebPlotDigitizer Computer vision assisted tool to extract numerical data from plot images. 项目地址: https://gitcode.com/gh_mirrors/we/WebPlotDigitizer WebPlotDi…...

【2026年最新600套毕设项目分享】微信课堂助手小程序(30034)

有需要的同学&#xff0c;源代码和配套文档领取&#xff0c;加文章最下方的名片哦 一、项目演示 项目演示视频 二、资料介绍 完整源代码&#xff08;前后端源代码SQL脚本&#xff09;配套文档&#xff08;LWPPT开题报告/任务书&#xff09;远程调试控屏包运行一键启动项目&…...

MIPI C-PHY协议解析:嵌入式时钟与高速数据传输的革新设计

1. MIPI C-PHY&#xff1a;重新定义高速数据传输的游戏规则 当你在手机上滑动4K视频时&#xff0c;有没有想过这些海量数据是如何在芯片间闪电般传递的&#xff1f;这就是MIPI C-PHY的舞台。作为移动产业处理器接口联盟的革新之作&#xff0c;C-PHY用三根线完成了传统D-PHY四根…...

Electron应用跨平台打包实战:兼容Windows 32位与64位系统

1. 为什么需要兼容32位和64位Windows系统&#xff1f; 最近接手一个项目&#xff0c;客户要求在展会上演示Web应用。这种线下场景用浏览器打开网址确实显得不够专业&#xff0c;于是决定用Electron打包成桌面应用。但现场设备五花八门&#xff0c;既有新款的64位Windows电脑&am…...

Turbo Boost Switcher:终极Mac性能管理工具,轻松掌控CPU性能

Turbo Boost Switcher&#xff1a;终极Mac性能管理工具&#xff0c;轻松掌控CPU性能 【免费下载链接】Turbo-Boost-Switcher Turbo Boost disabler / enable app for Mac OS X 项目地址: https://gitcode.com/gh_mirrors/tu/Turbo-Boost-Switcher 你是否曾经在Mac上遇到…...

C# 解析 PowerPoint 文件:从基础读取到高级内容提取实战

1. 为什么需要解析PowerPoint文件&#xff1f; 在日常工作中&#xff0c;我们经常会遇到需要批量处理PowerPoint文件的需求。比如市场部门需要从上百份产品演示PPT中提取关键卖点&#xff0c;培训部门要整理历年课件中的知识点&#xff0c;或者数据分析师需要收集各部门汇报中的…...

抖音内容自动化采集:开源下载工具架构解析与实战应用

抖音内容自动化采集&#xff1a;开源下载工具架构解析与实战应用 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback suppor…...

FUTURE POLICE语音对齐:5分钟快速部署,新手也能搞定毫秒级字幕

FUTURE POLICE语音对齐&#xff1a;5分钟快速部署&#xff0c;新手也能搞定毫秒级字幕 你是不是也遇到过这样的烦恼&#xff1f;辛辛苦苦给视频配好了字幕&#xff0c;导出一看&#xff0c;字幕和说话声音总是差那么零点几秒&#xff0c;怎么调都对不上。或者&#xff0c;面对…...