图像去噪--(1)

系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • 一、图像噪声
    • 1.1 噪声定义
    • 1.2 基本特征
  • 二、按照噪声概率分布分类
    • 1.高斯噪声
    • 2.泊松噪声
  • 三、去噪算法
    • 3.1 线性滤波
      • 3.1.1 高斯滤波
      • 3.1.2 均值滤波
    • 3.2 非线性滤波
      • 3.2.1 中值滤波
      • 3.2.2 双边滤波
  • 四、深度学习
  • 总结


前言


一、图像噪声

1.1 噪声定义

图像各像素点的值因为噪声的存在偏离真实数值,使得图像模糊,画质下降,甚至淹没图像特征。

1.2 基本特征

  1. 图像噪声和真实数据有可能叠加也有可能分离
  2. 绝大部分噪声在图像中大小和分布不均,具有随机性
  3. 大部分噪声服从一定的统计学规律

二、按照噪声概率分布分类

参考 图像噪声、去噪基本方法合集(Python实现)

1.高斯噪声

所有噪声使用最广泛的,根据高斯分布(正态分布)的形式描述。相机在拍摄时视场较暗且亮度不均匀造成的,同时相机长时间工作使得温度过高也会引起高斯噪声,另外电路元器件白身噪声和互相影响也是造成高斯噪声的重要原因之一。

在这里插入图片描述
给图片加噪声

import cv2
import random
import numpy as npimg = cv2.imread('tulip.jpg')# 产生高斯随机数
noise = np.random.normal(0, 50, size=img.size).reshape(img.shape[0], img.shape[1], img.shape[2])
# 加上噪声
img_with_noise = np.clip(img + noise, 0, 255).astype(np.uint8)# 保存带有高斯噪声的图像
cv2.imwrite('tulip_with_noise.jpg', img_with_noise)

在这里插入图片描述
在这里插入图片描述

2.泊松噪声

泊松噪声是一种常见的图像噪声,它主要出现在光子计数较低的成像条件下,例如在低光条件下拍摄的图像或者放射性成像中。泊松噪声的特点是在图像中的每个像素值上引入了随机变化,这种变化的强度与像素值本身呈正相关。泊松噪声在图像中表现为像素值的随机波动

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

三、去噪算法

空间域包括局部滤波和非局部滤波。局部滤波包括线性滤波和非线性滤波

3.1 线性滤波

3.1.1 高斯滤波

高斯滤波:具体来说,高斯滤波利用了高斯函数的特性,对图像中每个像素周围的邻域进行加权平均处理,使得图像中每个像素的值都受到其周围像素值的影响,从而实现平滑处理。这种平滑效果有助于去除噪声,并可以在一定程度上保留图像的边缘信息。

import cv2
import numpy as np# 读取带有高斯噪声的图像
img_with_noise = cv2.imread('tulip_with_noise.jpg')# 应用高斯滤波去噪
denoised_img = cv2.GaussianBlur(img_with_noise, (5, 5), 0)# 保存去噪后的图像
cv2.imwrite('tulip_denoised.jpg', denoised_img)

在这里插入图片描述

3.1.2 均值滤波

对图像中的每个像素取周围像素的平均值,可以有效去除高斯噪声。用于减少图像中的噪声。在OpenCV中,可以使用 cv2.blur() 函数来应用均值滤波
在这里插入图片描述

3.2 非线性滤波

3.2.1 中值滤波

将每个像素的灰度值替换为其周围像素灰度值的中值

3.2.2 双边滤波

双边滤波(Bilateral Filtering)是一种常见的图像滤波技术,能够在减少噪声的同时保留图像的边缘信息。它结合了空间域和灰度值域的信息,在平滑图像的同时保持图像的细节。

  1. 对于输入图像中的每个像素,选择一个邻域窗口,包含该像素及其周围的像素。

  2. 对于窗口中的每个像素,计算它与中心像素之间的空间距离和灰度值差异。

  3. 根据空间距离和灰度值差异计算像素的权重。一般来说,空间距离越近且灰度值差异越小的像素权重越高。

  4. 使用权重对邻域内的像素进行加权平均。权重越高的像素对平均值的贡献越大。

四、深度学习

DnCNN/FFDNet
图像去噪包含 数据预处理,特征提取,去噪模型三部分
在这里插入图片描述

  1. 数据清洗
  2. 提取噪声块,对噪声水平高低做出初步估计
  3. 选择去噪模型,自主快速提取浅层像素级特征和深层语义特征

y = x+v
x:无噪声图像
y:噪声图像
x = y-R(y)
v = R(y)

R即为噪声模型


总结

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

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

相关文章

条款09:绝不在析构和构造中调用virtual函数

1.为什么 #include<iostream> using namespace std;class Transaction//交易信息类 {Transaction();virtual void logTransaction()const 0;//交易日志 };Transaction::Transaction() {logTransaction(); }class BuyTransaction : public Transaction//买入操作 {virtu…

Springboot全局异常处理

Springboot全局异常处理 一、不使用全局异常处理器二、全局异常处理器1.自定义常量&#xff08;返回状态码&#xff09;2.手动抛出异常3.编写全局异常处理器4.测试结果 三、全局异常处理方式二1.定义状态码常量2. 定义基础接口&#xff08;面向接口编程&#xff09;3.定义枚举类…

湖南麒麟SSH服务漏洞

针对湖南麒麟操作系统进行漏洞检测时&#xff0c;会报SSH漏洞风险提醒&#xff0c;具体如下&#xff1a; 针对这些漏洞&#xff0c;可以关闭SSH服务&#xff08;前提是应用已经部署完毕不再需要通过SSH远程访问传输文件的情况下&#xff0c;此时可以通过VNC远程登录方法&#x…

JMeter基础 — JMeter聚合报告详解

提示&#xff1a;聚合报告组件的使用和察看结果树组件的使用方式相同。本篇文章主要是详细的介绍一下聚合报告组件内容&#xff0c;不做示例演示。 1、聚合报告介绍 在使用JMeter进行性能测试时&#xff0c;聚合报告(Aggregate Report)可以说是必用的监听器。 &#xff08;1&…

Internet协议的安全性

Internet协议的安全性 文章目录 Internet协议的安全性1. 网络层1. IP*62. ARP*33. ICMP * 3 2. 传输层协议1. TCP1. * SYN-Flood攻击攻击检测* 防御 2. TCP序号攻击攻击 3. 拥塞机制攻击 2. UDP 3. 应用层协议1. DNS攻击*3防范*3: 2. FTP3. TELNET: 改用ssh4. 电子邮件1. 攻击2…

【Javascript编程实操06】1、反转数组和字符串 2、将二维数组转一维数组

前言 1、反转数组和字符串 代码&#xff1a; 实现效果&#xff1a; 2、将二维数组转一维数组 代码&#xff1a; 实现效果&#xff1a; 总结 前言 本次主要是针对Javascript阶段的字符串与数组的实操练习&#xff0c;共有2个实操&#xff0c;大家可以在实操的过程中更加深…

什么时候去检测大数据信用风险比较合适?

什么时候去检测大数据信用风险比较合适?在当今这个数据驱动的时代&#xff0c;大数据信用风险检测已经成为个人的一项重要需求。本文将从贷前检测、信息泄露检测和定期检测三个方面&#xff0c;阐述何时进行大数据信用风险检测较为合适。 一、贷前检测 大数据信用风险检测在贷…

Docker使用(二)Docker安装和常见典型操作

Docker使用(二)Docker安装和常见典型操作 二、软件安装 1、Docker安装 &#xff08;1&#xff09;环境准备 [rootlocalhost ~]# uname -r 3.10.0-327.el7.x86_64 # cat /etc/os-release &#xff08;2&#xff09;卸载旧版本 $ sudo yum remove docker \ ​ docker-cli…

折半搜索.

折半搜索 知识点折半搜索的原理折半搜索的过程 例题题目&#xff1a;世界冰球锦标赛题目描述输入样例输出样例提示 世界冰球锦标赛题解思路代码 知识点 折半搜索的原理 折半搜索是一种技巧&#xff0c;实际上就是将一个次搜索过程分成两次进行&#xff0c;然后将两次搜索的结果…

145 Linux 网络编程1 ,协议,C/S B/S ,OSI 7层模型,TCP/IP 4层模型,

一 协议的概念 从应用的角度出发&#xff0c;协议可理解为“规则”&#xff0c;是数据传输和数据的解释的规则。 典型协议 传输层 常见协议有TCP/UDP协议。 应用层 常见的协议有HTTP协议&#xff0c;FTP协议。 网络层 常见协议有IP协议、ICMP协议、IGMP协议。 网络接口层 常…

作业-逆序和定位

目录 字符串逆序 题目描述 输入 输出 样例 解题思路&#xff1a; 单词倒排 题目描述 输入 输出 样例 解题思路&#xff1a; 首字母大写 题目描述 输入 输出 样例 解题思路&#xff1a; 统计句子中单词个数 题目描述 输入 输出 样例 解题思路&#xff1a; 大小写字母互换 题目描…

springboot“涛宝”大学生二手物品交易商城

摘 要 二十一世纪我们的社会进入了信息时代&#xff0c;信息管理系统的建立&#xff0c;大大提高了人们信息化水平。传统的管理方式对时间、地点的限制太多&#xff0c;而在线管理系统刚好能满足这些需求&#xff0c;在线管理系统突破了传统管理方式的局限性。于是本文针对这一…

Kubernetes operator系列:webhook 知识学习

云原生学习路线导航页&#xff08;持续更新中&#xff09; 本文是 Kubernetes operator学习 系列文章&#xff0c;本节会对 kubernetes webhook 知识进行学习 本文的所有代码&#xff0c;都存储于github代码库&#xff1a;https://github.com/graham924/share-code-operator-st…

免费接口调用 招标信息自动抽取|招标信息|招标数据解析接口

一、开源项目介绍 一款多模态AI能力引擎&#xff0c;专注于提供自然语言处理&#xff08;NLP&#xff09;、情感分析、实体识别、图像识别与分类、OCR识别和语音识别等接口服务。该平台功能强大&#xff0c;支持本地化部署&#xff0c;并鼓励用户体验和开发者共同完善&#xf…

浅谈性能测试中的基准测试

在性能测试中有一种测试类型叫做基准测试。这篇文章&#xff0c;就聊聊关于基准测试的一些事儿。 1、定义 通过设计合理的测试方法&#xff0c;选用合适的测试工具和被测系统&#xff0c;实现对某个特定目标场景的某项性能指标进行定量的和可对比的测试。 2、特质 ①、可重…

软件实例,餐厅酒水寄存管理系统软件,酒水寄存登记表软件操作教程

软件实例&#xff0c;餐厅酒水寄存管理系统软件&#xff0c;酒水寄存登记表软件操作教程 一、前言 以下软件操作以 佳易王酒水寄存管理系统软件V16.0为例说明 件文件下载可以点击最下方官网卡片——软件下载——试用版软件下载 1、酒水寄存管理系统软件可以管理多个品类的物…

SendMessage 和 PostMessage 有什么区别?

SendMessage和PostMessage都是Windows编程中用于进程间通信或同一进程内不同线程间通信的函数&#xff0c;用于向窗口发送消息。尽管这两个函数的目的相似&#xff0c;但它们在实现方式和行为上存在一些关键差异。 同步与异步&#xff1a; SendMessage是一个同步消息发送函数。…

用 C 语言模拟 Rust 的 Result 类型

在 Rust 中&#xff0c;Result<T, E> 类型是一个枚举&#xff0c;它表示一个操作可能成功并返回一个值 T&#xff0c;或者失败并返回一个错误 E。在 C 语言中&#xff0c;没有直接对应的 Result 类型&#xff0c;但我们可以使用结构体和枚举来模拟它。 下面是一个用 C 语…

AI健身教练-引体向上-俯卧撑计数-仰卧起坐姿态估计-康复训练姿态识别-姿态矫正

在AI健身应用中&#xff0c;通过关键点检测技术可以实现对用户动作的精准捕捉和分析&#xff0c;从而进行统计计数和规范性姿态识别。 统计计数&#xff1a;比如在做瑜伽、健身操等运动时&#xff0c;系统可以通过对人体关键点&#xff08;如手部、脚部、关节等&#xff09;的…

复习 --- windows 上安装 git,使用相关命令

文章目录 很少使用windows的git工具&#xff0c;这次借助这个任务&#xff0c;记录下使用过程&#xff0c;其他的等有空在整理。 其中&#xff0c;还使用了浏览器的AI小助手&#xff0c;复习了git相关的命令&#xff1a;图片放最后