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

基于matlab的高斯滤波与图像去噪

1 高斯滤波原理

1.1 原理

高斯滤波是一种线性平滑滤波技术,主要用于消除图像中的高斯噪声。它的工作原理可以理解为对整幅图像进行加权平均的过程,即每个像素点的值都由其本身和邻域内的其他像素值经过加权平均后得到。

高斯滤波实质上是一种信号的滤波器,其用途是信号的平滑处理。在数字图像处理中,噪声是最大的问题之一,由于误差会累计传递,因此高斯滤波器被广泛应用于图像去噪过程,以获取信噪比SNR较高的图像,从而更真实地反映原始信号。

1.2 公式

高斯滤波的核心是高斯函数,其公式在一维情况下表示为:

G(x) = (\frac{1}{\sqrt{2\pi}\sigma} \exp(-\frac{x2}{2\sigma2}))

其中,(G(x)) 表示高斯函数在 (x) 处的值,(\sigma) 是标准差,它决定了高斯函数的宽度,从而影响了滤波的强弱程度。标准差越大,滤波程度越强,滤波效果越明显。

在二维图像处理中,高斯滤波使用的高斯核是两个一维高斯函数的乘积,形式如下:

G(x, y) = (\frac{1}{2\pi\sigma2}\exp(-\frac{x2+y2}{2\sigma2}))

其中,((x, y)) 是图像中的像素坐标,(\sigma) 是标准差。高斯核是对连续高斯函数的离散近似,通常通过对高斯曲面进行离散采样和归一化得出。这里,归一化指的是卷积核所有元素之和为1。

1.3 实现方法

高斯滤波的实现通常使用卷积操作,即将高斯函数(或高斯核)应用到图像上,通过计算每个像素点与其邻域内像素点的加权平均灰度值来替代该像素点的原始值。具体操作为:用一个模板(或称卷积核、掩模)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的值。

高斯滤波在计算机视觉和图像处理中是最常见的操作之一,它有两种主要的实现方式:一是使用离散化窗口滑窗卷积;另一种则是通过傅里叶变换来实现。

2 中值滤波去噪原理

2.1 原理

中值滤波是一种非线性平滑技术,主要用于消除图像或信号中的噪声,特别是椒盐噪声。其基本原理是:将数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近真实值,从而消除孤立的噪声点。

中值滤波的核心思想是认为噪声像素的值与周围像素值存在显著差异,因此通过取周围像素值的中值可以有效减少噪声的影响。同时,中值滤波在滤除噪声的同时,能够保护信号的边缘,使之不被模糊,这是线性滤波方法所不具备的。

2.2 步骤
  1. 遍历图像的每个像素点,选择一个特定的邻域大小(如3x3、5x5等),该邻域大小可以根据实际需要进行调整。
  2. 将邻域内的像素值按照大小进行排序,生成单调上升(或下降)的二维数据序列。
  3. 将排序后的中值作为当前像素的新值,用于替代原始的像素值或噪声像素值。
2.3 公式

公式一般用来表示二维图像中的中值滤波操作。假设我们有一个滑动窗口,其尺寸为m×m(m为奇数),窗口覆盖下的像素邻域像素值序列长度为m²。序列中的每个元素对应于窗口内的一个像素值。将这些像素值进行排序后,取中间值作为窗口中心像素的新值。

用数学公式表示如下:

g(x, y) = med{f(x-v, y-v), ..., f(x+v, y+v)}

其中,g(x, y)表示中值滤波后图像在(x, y)处的像素值,f(x, y)表示原始图像在(x, y)处的像素值,v = (m-1)/2,med表示取中值操作。

这个公式描述了中值滤波的基本操作过程,即通过在图像上滑动一个固定大小的窗口,并将窗口内像素值的中值作为窗口中心像素的新值,来实现对图像的平滑去噪处理。

3.代码

%% 图像预处理-高斯滤波与图像去噪 
I = imread('test.jpeg');  
if size(I, 3) == 3  % 如果是彩色图像,转换为灰度图像  I = rgb2gray(I);  
end  
I = im2double(I); % 将图像转换为双精度,范围在[0, 1]    
% 对图像进行高斯滤波  
h = fspecial('gaussian', [5 5], 1); % 创建一个5x5的高斯滤波器,标准差为1  
I_gaussian = imfilter(I, h);    
% 绘制原始图像和原始直方图  
figure;  
subplot(3, 2, 1),imshow(I);  
title('原始图像');   
subplot(3, 2, 2),imhist(I);  
title('原始直方图');  
%  绘制高斯滤波后的图像和对应的直方图  
subplot(3, 2, 3),imshow(I_gaussian);  
title('高斯滤波后的图像');  
subplot(3, 2, 4),imhist(I_gaussian);  
title('高斯滤波后的直方图');   
% 去噪使用中值滤波  
I_denoised = medfilt2(I); % 使用中值滤波进行去噪    
% 绘制去噪后的图像和对应的直方图  
subplot(3, 2, 5),imshow(I_denoised);  
title('去噪后的图像');  
subplot(3, 2, 6),imhist(I_denoised);  
title('去噪后的直方图'); 

4 运行结果

相关文章:

基于matlab的高斯滤波与图像去噪

1 高斯滤波原理 1.1 原理 高斯滤波是一种线性平滑滤波技术,主要用于消除图像中的高斯噪声。它的工作原理可以理解为对整幅图像进行加权平均的过程,即每个像素点的值都由其本身和邻域内的其他像素值经过加权平均后得到。 高斯滤波实质上是一种信号的滤…...

解决 uniapp h5 页面在私有企微iOS平台 间歇性调用uni api不成功问题(uni.previewImage为例)。

demo <template><view class"content"><image class"logo" src"/static/logo.png"></image><button click"previewImage">预览图片</button></view> </template><script> //打…...

Jenkins nginx自动化构建前端vue项目

在现代的Web开发中&#xff0c;Vue.js已经成为一种非常流行的JavaScript框架。为了更高效地管理和部署Vue.js项目&#xff0c;使用自动化构建工具是至关重要的。Jenkins作为一款强大的持续集成和持续部署&#xff08;CI/CD&#xff09;工具&#xff0c;为我们提供了一种便捷的方…...

Devicetree - 删除某个节点或属性

在设备树&#xff08;devicetree&#xff09;中&#xff0c;删除语法用于从现有设备树中删除属性或节点。这通常在设备树覆盖文件&#xff08;DTS&#xff09;或片段文件中完成。该语法使用 /delete-property/ 和 /delete-node/ 指令。 以下是如何使用这些指令的示例&#xff1…...

Xcode will continue when the operation completes

Xcode 15后,连接手机经常出现 Preparing iPhone. Xcode will continue when the operation completes.记录一下解决办法。其他提示&#xff0c;Xcode连接不上手机也可以尝试通过这个方法解决。 注意:最好关闭科学上网再操作。 从Xcode取消iPhone的配对(右键单击 -Unpair Devi…...

Python爬虫-贝壳新房

前言 本文是该专栏的第32篇,后面会持续分享python爬虫干货知识,记得关注。 本文以某房网为例,如下图所示,采集对应城市的新房房源数据。具体实现思路和详细逻辑,笔者将在正文结合完整代码进行详细介绍。接下来,跟着笔者直接往下看正文详细内容。(附带完整代码) 正文 地…...

Canvas绘制图片和区域

如何使用Canvas在图片上绘制区域&#xff1f; 一. 首先&#xff0c;我们需要初始化三个canvas画布&#xff08;初始化Canvas&#xff09; initCanvas() {// 初始化canvas画布let canvasWrap document.getElementsByClassName("canvas-wrap");this.wrapWidth canva…...

Day10—Spark SQL基础

Spark SQL介绍 ​ Spark SQL是一个用于结构化数据处理的Spark组件。所谓结构化数据&#xff0c;是指具有Schema信息的数据&#xff0c;例如JSON、Parquet、Avro、CSV格式的数据。与基础的Spark RDD API不同&#xff0c;Spark SQL提供了对结构化数据的查询和计算接口。 Spark …...

开源技术:在线教育系统源码及教育培训APP开发指南

本篇文章&#xff0c;小编将探讨如何利用开源技术开发在线教育系统及教育培训APP&#xff0c;旨在为有志于此的开发者提供全面的指导和实践建议。 一、在线教育系统的基本构架 1.1架构设计 包括前端、后端和数据库三个主要部分。 1.2前端技术 在前端开发中&#xff0c;HTML…...

[C++][设计模式][观察者模式]详细讲解

目录 1.动机2.模式定义3.要点总结4.代码感受1.代码一1.FileSplitter.cpp2.MainForm.cpp 2.代码二1.FileSplitter.cpp2.MainForm.cpp 1.动机 在软件构建过程中&#xff0c;需要为某些对象建立一种“通知依赖关系” 一个对象(目标对象)的状态发生改变&#xff0c;所有的依赖对象…...

Adobe Acrobat 编辑器软件下载安装,Acrobat 轻松编辑和管理各种PDF文件

Adobe Acrobat&#xff0c;它凭借卓越的功能和丰富的工具&#xff0c;为用户提供了一个全面的解决方案&#xff0c;用于查看、创建、编辑和管理各种PDF文件。 作为一款专业的PDF阅读器&#xff0c;Adobe Acrobat能够轻松打开并展示各种格式的PDF文档&#xff0c;无论是文字、图…...

eVTOL飞机:技术挑战、应用机遇和运动的作用

最近&#xff0c;航空业的嗡嗡声围绕着电动空中出租车、空中拼车、无人驾驶航空货物运送等。这些概念都依赖于一类称为eVTOL的飞机&#xff0c;eVTOL是电动垂直起降的缩写。 与直升机类似&#xff0c;但没有噪音和排放&#xff0c;eVTOL可以在不需要简易机场的情况下飞行、悬停…...

【python】flask中如何向https服务器传输信息

【背景】 用flask做一个支持流媒体传输的网页,如何将信息post给流媒体服务器呢? 【方法】 简单例子,视图函数这么写: url = "https://yourip/mytext" headers = {Content-Type:application/octet-stream} @app.route(/,methods=["POST"...

计算机网络 —— 应用层(FTP)

计算机网络 —— 应用层&#xff08;FTP&#xff09; FTP核心特性&#xff1a;运作流程&#xff1a; FTP工作原理主动模式被动模式 我门今天来看应用层的FTP&#xff08;文件传输协议&#xff09; FTP FTP&#xff08;File Transfer Protocol&#xff0c;文件传输协议&#x…...

zookeeper + kafka消息队列

zookeeper kafka 消息队列 一、消息队列简介 1、什么是消息队列 消息队列&#xff08;Message Queue&#xff09;是一种用于跨进程或分布式系统中传递消息的通信机制。消息队列在异步通信、系统解耦、负载均衡和容错方面具有重要作用。 &#xff08;1&#xff09;特性 异步…...

Python高级编程:深度学习基础

Python高级编程:深度学习基础 在前几篇文章中,我们探讨了Python的基础语法、面向对象编程、标准库、第三方库、并发编程、异步编程、网络编程与网络爬虫、数据库操作与ORM、数据分析与数据可视化以及机器学习基础。在这篇文章中,我们将深入探讨Python在深度学习领域的应用。…...

如何从magento1迁移到magento2

m2相较m1 变化可以说非常大&#xff0c;相当于从头到位都改写一遍&#xff0c;更现代化&#xff0c;更优雅。除了数据库表变化不是很大。 主要迁移的内容有&#xff1a; 1&#xff0c;主题 2&#xff0c;插件(自己开发的或者第三方插件) 3&#xff0c;数据库 主题 不能迁移到m…...

【Nginx】Nginx安装及简单使用

https://www.bilibili.com/video/BV1F5411J7vK https://www.kuangstudy.com/bbs/1353634800149213186 https://stonecoding.net/system/nginx/nginx.html https://blog.csdn.net/qq_40492693/article/details/124453090 Nginx 是一个高性能的 HTTP 和反向代理 Web 服务器。其特…...

【Linux系列】find命令使用与用法详解

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

Apple - DNS Service Discovery Programming Guide

本文翻译整理自&#xff1a;DNS Service Discovery Programming Guide&#xff08;更新日期&#xff1a;2013-08-08 https://developer.apple.com/library/archive/documentation/Networking/Conceptual/dns_discovery_api/Introduction.html#//apple_ref/doc/uid/TP30000964 文…...

浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)

✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义&#xff08;Task Definition&…...

基于大模型的 UI 自动化系统

基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

FFmpeg 低延迟同屏方案

引言 在实时互动需求激增的当下&#xff0c;无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作&#xff0c;还是游戏直播的画面实时传输&#xff0c;低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架&#xff0c;凭借其灵活的编解码、数据…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

STM32F4基本定时器使用和原理详解

STM32F4基本定时器使用和原理详解 前言如何确定定时器挂载在哪条时钟线上配置及使用方法参数配置PrescalerCounter ModeCounter Periodauto-reload preloadTrigger Event Selection 中断配置生成的代码及使用方法初始化代码基本定时器触发DCA或者ADC的代码讲解中断代码定时启动…...

家政维修平台实战20:权限设计

目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系&#xff0c;主要是分成几个表&#xff0c;用户表我们是记录用户的基础信息&#xff0c;包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题&#xff0c;不同的角色&#xf…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句&#xff0c;它能够让用户直接在浏览器内练习SQL的语法&#xff0c;不需要安装任何软件。 链接如下&#xff1a; sqliteviz 注意&#xff1a; 在转写SQL语法时&#xff0c;关键字之间有一个特定的顺序&#xff0c;这个顺序会影响到…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言&#xff1a; 最近在做行为检测相关的模型&#xff0c;用的是时空图卷积网络&#xff08;STGCN&#xff09;&#xff0c;但原有kinetic-400数据集数据质量较低&#xff0c;需要进行细粒度的标注&#xff0c;同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...

保姆级教程:在无网络无显卡的Windows电脑的vscode本地部署deepseek

文章目录 1 前言2 部署流程2.1 准备工作2.2 Ollama2.2.1 使用有网络的电脑下载Ollama2.2.2 安装Ollama&#xff08;有网络的电脑&#xff09;2.2.3 安装Ollama&#xff08;无网络的电脑&#xff09;2.2.4 安装验证2.2.5 修改大模型安装位置2.2.6 下载Deepseek模型 2.3 将deepse…...