图像去噪--(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,一经查实,立即删除!

相关文章

Springboot全局异常处理

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

湖南麒麟SSH服务漏洞

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

JMeter基础 — JMeter聚合报告详解

提示:聚合报告组件的使用和察看结果树组件的使用方式相同。本篇文章主要是详细的介绍一下聚合报告组件内容,不做示例演示。 1、聚合报告介绍 在使用JMeter进行性能测试时,聚合报告(Aggregate Report)可以说是必用的监听器。 (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、反转数组和字符串 代码: 实现效果: 2、将二维数组转一维数组 代码: 实现效果: 总结 前言 本次主要是针对Javascript阶段的字符串与数组的实操练习,共有2个实操,大家可以在实操的过程中更加深…

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

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

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

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

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

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

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

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

Kubernetes operator系列:webhook 知识学习

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

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

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

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

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

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

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

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

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

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

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

ROS——集成开发环境搭建

1.4 ROS集成开发环境搭建 和大多数开发环境一样,理论上,在 ROS 中,只需要记事本就可以编写基本的 ROS 程序,但是工欲善其事必先利其器,为了提高开发效率,可以先安装集成开发工具和使用方便的工具:终端、ID…

YOLOv9算法原理——使用可编程梯度信息学习想要学习的内容

前言 2023年1月发布YOLOv8正式版后,经过一年多的等待,YOLOv9终于面世了!YOLO是一种利用图像全局信息进行目标检测的系统。自从2015年Joseph Redmon、Ali Farhadi等人提出了第一代模型以来,该领域的研究者们已经对YOLO进行了多次更…

EOS 与ESD 区别

ESD: 英文:Electrical Static Discharge; 定义:不同静电电位的两个物体之间的电荷转移;中文释为静电放电。静电是一种客观的自然现象; EOS: 英文:Electrical Over Stress 定义&#xf…

钉钉小程序 - - - - - 如何通过一个链接打开小程序内的指定页面

方式1 钉钉小程序 scheme dingtalk://dingtalkclient/action/open_mini_app?miniAppId123&pagepages%2Findex%2Findex%3Fx%3D%25E4%25B8%25AD%25E6%2596%2587 方式2 https://applink.dingtalk.com/action/open_mini_app?type2&miniAppIdminiAppId&corpIdcorpId&…

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

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