图像去噪--(1)

news2024/12/26 9:22:01

系列文章目录


文章目录

  • 系列文章目录
  • 前言
  • 一、图像噪声
    • 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 np

img = 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.coloradmin.cn/o/1521998.html

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

相关文章

【模糊集合】示例

【模糊集合】隶属函数、关系与运算 例1 设, 分别进行交、并、补运算,有: 由上模糊集合的全体组成的集合称为的模糊幂集,记为,fuzzy 上述为模糊集合的Zadeh记法,其中的“”号不表示分式求和,仅作…

深度强化学习(七)策略梯度

深度强化学习(七)策略梯度 策略学习的目的是通过求解一个优化问题,学出最优策略函数或它的近似函数(比如策略网络) 一.策略网络 假设动作空间是离散的,,比如 A { 左 , 右 , 上 } \cal A\{左,右,上\} A{左,右,上},策…

Linux 进程控制进程终止

目录 一、fork函数 1、概念 2、父子进程的共享 3、 为什么父子进程会从fork()调用之后的位置继续执行代码 4、写时拷贝 5、为什么需要写时拷贝 6、写时拷贝的好处 7、fork常规用法 8、fork调用失败的原因 9、查看系统最大进程数 二、进程终止 1、进程退出场景 2、…

redis 入门01

1.安装与配置 在官网下压缩包并传送给自己的虚拟机或者使用wget直接下载都可以 注意:redis是运行在linux下的基于内存的kv键值对数据库 安装与配置参考 2.经典Hello World 注意设置redis在后台运行,默认是前台进行的 我们配置完成之后首先启动服务器 redis-server 配置文件 这里…

MyBatis3源码深度解析(十二)MyBatis的核心组件(一)Configuration

文章目录 第四章 MyBatis的核心组件4.1 使用MyBatis操作数据库4.2 MyBatis核心组件4.3 Configuration组件4.3.1 属性4.3.2 设置4.3.3 类型别名4.3.3 类型处理器4.3.5 对象工厂4.3.6 插件4.3.7 配置环境4.3.8 映射器 第四章 MyBatis的核心组件 4.1 使用MyBatis操作数据库 在研…

Boyer Moore 算法介绍

1. Boyer Moore 算法介绍 Boyer Moore 算法:简称为 BM 算法,是由它的两位发明者 Robert S. Boyer 和 J Strother Moore 的名字来命名的。BM 算法是他们在 1977 年提出的高效字符串搜索算法。在实际应用中,比 KMP 算法要快 3~5 倍。 BM 算法思…

【Machine Learning】Suitable Learning Rate in Machine Learning

一、The cases of different learning rates: In the gradient descent algorithm model: is the learning rate of the demand, how to determine the learning rate, and what impact does it have if it is too large or too small? We will analyze it through the follow…

【安全类书籍-1】asp代码审计.pdf

目录 内容简介 作用 下载地址 内容简介 这个文档摘录片段主要讨论了ASP编程中的安全性审计,包括SQL注入漏洞、Cookie注入防范措施及文件上传安全问题,并给出了相关示例代码。 SQL注入漏洞与防范 - ASP代码中展示了如何通过`Request.QueryString`和`Request.Form`获取用户…

SpringBoot打造企业级进销存储系统 第五讲

package com.java1234.repository;import com.java1234.entity.Menu; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.data.jpa.repository.Query;import java.util.List;/*** 菜单Repository接口*/ public interface MenuReposit…

spacy进行简单的自然语言处理的学习

自然语言处理基本概念 概念:自然语言处理,是让机器理解人的语言的过程。 作用:通过使用自然语言处理,机器可以理解人的语言,从而进行语义分析,例如:从一句话中判断喜怒哀乐;从一段文…

电大搜题:开启学习新时代

身处信息化时代,学习的方式已经发生了巨大的变革。在这个多元化的学习环境中,传统的学习模式已经无法满足现代学习者的需求。然而,电大搜题应运而生,为学习者提供了一个高效、便捷的学习途径。 电大搜题,作为黑龙江开…

阅读 - 二维码扫码登录原理

在日常生活中,二维码出现在很多场景,比如超市支付、系统登录、应用下载等等。了解二维码的原理,可以为技术人员在技术选型时提供新的思路。对于非技术人员呢,除了解惑,还可以引导他更好地辨别生活中遇到的各种二维码&a…

铁路订票平台小程序|基于微信小程序的铁路订票平台小程序设计与实现(源码+数据库+文档)

铁路订票平台小程序目录 目录 基于微信小程序的铁路订票平台小程序设计与实现 一、前言 二、系统设计 三、系统功能设计 1、用户信息管理 2、车次信息管理 3、公告信息管理 4、论坛信息管理 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐…

Transformer学习笔记(二)

一、文本嵌入层Embedding 1、作用: 无论是源文本嵌入还是目标文本嵌入,都是为了将文本中词汇的数字表示转变为向量表示,希望在这样的高维空间捕捉词汇间的关系。 二、位置编码器Positional Encoding 1、作用: 因为在Transformer…

冲动是魔鬼,工作不顺心时不要把坏脾气带给家人

今天与一个跟踪了很久的客户准备签合同了,客户突然反悔,为此与他周旋了一整天,忙碌得一口水都没有喝。回到小区坐在车里抽着烟,久久不愿回家,只想一个人坐着,疲惫、无奈。这个月的奖金似乎又将成为泡影。 …

Microsoft SQL Server2019占用大量磁盘空间的解决办法(占了我C盘120G的空间!!!)附SQL数据库定时清理代理作业

一、问题 安装Microsoft SQL Server2019后我的C盘在几天后少了100G,如图所示: 解决后: 出现这种情况,我在各种清理C盘后,空间还是没有太大变化 ,且几乎每天都要少2个G,后来终于找见原因了&…

Postman接口测试:API 测试的必备技巧

在现代软件开发生命周期中,接口测试是一个至关重要的部分。使用 Postman 这一工具,可以轻松地进行 接口测试。以下是一份简单的使用教程,帮助你快速上手。 安装 Postman 首先,你需要在电脑上安装 Postman。你可以从官网上下载并…

虚拟机NAT模式配置

注意这里IP要和网关在同一网段,且虚拟机默认网关末尾为.2(如果默认网关配置为.1会与宿主机冲突,导致无法ping通外网) 点击NAT模式下的NAT设置即可查看默认网关 这里的网关可以理解为主机与虚拟机交互的入口

CSDN首发Chainlink(预言机)讲解:基础知识总结 到底什么是预言机本篇带你解析

苏泽 大家好 这里是苏泽 一个钟爱区块链技术的后端开发者 本篇专栏 ←持续记录本人自学两年走过无数弯路的智能合约学习笔记和经验总结 如果喜欢拜托三连支持~ 前面的专栏带大家熟悉了 区块链的基本组成 、共识机制、智能合约、最小信任机制 以及EVM等知识 如遇不懂的概念或名…

2024年【危险化学品经营单位主要负责人】新版试题及危险化学品经营单位主要负责人复审考试

题库来源:安全生产模拟考试一点通公众号小程序 2024年【危险化学品经营单位主要负责人】新版试题及危险化学品经营单位主要负责人复审考试,包含危险化学品经营单位主要负责人新版试题答案和解析及危险化学品经营单位主要负责人复审考试练习。安全生产模…