01:高斯噪声和椒盐噪声

news/2024/10/26 4:19:14/

文章目录

  • 前言
  • 一、高斯噪声和椒盐噪声是什么?
  • 二、编写程序
    • 1.分析两者的特点
    • 2.调用两个函数,实现添加噪声
  • 总结


前言

记录一下手写椒盐噪声和高斯噪声的python程序。
效果图如下:
在这里插入图片描述


一、高斯噪声和椒盐噪声是什么?

椒盐噪声和高斯噪声都是数字图像处理中常见的噪声类型。
1.椒盐噪声是随机的黑色和白色像素点混杂在图像中,使得图像中的一些像素点变得十分明显且不规则。椒盐噪声可能由于传感器损坏、传输错误、压缩算法等原因而产生。
2.高斯噪声则是由于图像传感器发生随机噪声而导致的,具有随机性且遵循高斯分布。它会使得图像的亮度和颜色发生微弱的随机变化,以及出现模糊和失真的情况。这两种噪声都会影响图像的质量和准确性,需要在数字图像处理中进行去噪处理。

二、编写程序

1.分析两者的特点

1.椒盐噪声是图像中出现明,暗的噪声,也就是1,0的像素值(在0-1的范围内)
那么思路就是:在一个与原图像大小一致的空矩阵里,填充一部分0,1并将这些覆盖在原图像上。
代码如下(示例):

def salt_and_pepper_noise(image, prob):"""噪声函数:param image: 原图像,是灰度图:param prob: 控制椒盐噪声的数量,这里是0-1的一个概率值:return: 处理后的图像"""h , w = image.shape[:2]noise = np.zeros((h, w), dtype=np.uint8)#将noise随机填充0-255的值cv2.randu(noise, 0, 255)#将image传给image_copyimage_copy = image.copy()#prob*255就是我们选的那个阈值image_copy[np.where(noise < prob*255)] = 0image_copy[np.where(noise > (1-prob)*255)] = 255return image_copy

2.高斯噪声的最明显的特点就是服从高斯分布,这部分原理不再赘述。

def gaussian_noise(image, mean=0, var=0.1):"""给输入的图像添加高斯噪声:param image: 输入图像,0-255的灰度图:param mean: 高斯噪声的均值,默认为0:param var: 高斯噪声的标准差,默认为0.1:return: 添加高斯噪声后的图像"""#先把图像转化为0-1,并将类型转化为float32,这样有利于保存数据,image = np.asarray(image / 255, dtype=np.float32)#为了后面加方便,noise也要转化为float32noise = np.random.normal(mean, var,image.shape).astype(np.float32)noisy_image = image + noise#将noise_image限制在0-255,因为+运算可能有部分会超过255,再转化为整型noisy_image = np.clip(noisy_image*255, 0, 255).astype(np.uint8)return noisy_image

2.调用两个函数,实现添加噪声

import numpy as np
import cv2
#椒盐噪声
def salt_and_pepper_noise(image, prob):"""噪声函数:param image: 原图像,是灰度图:param prob: 控制椒盐噪声的数量,这里是0-1的一个概率值:return: 处理后的图像"""h , w = image.shape[:2]noise = np.zeros((h, w), dtype=np.uint8)#将noise随机填充0-255的值cv2.randu(noise, 0, 255)#将image传给image_copyimage_copy = image.copy()image_copy[np.where(noise < prob*255)] = 0image_copy[np.where(noise > (1-prob)*255)] = 255return image_copy
#高斯噪声
def gaussian_noise(image, mean=0, var=0.1):"""给输入的图像添加高斯噪声:param image: 输入图像:param mean: 高斯噪声的均值,默认为0:param var: 高斯噪声的标准差,默认为0.1:return: 添加高斯噪声后的图像"""image = np.asarray(image / 255, dtype=np.float32)noise = np.random.normal(mean, var,image.shape).astype(np.float32)noisy_image = image + noisenoisy_image = np.clip(noisy_image*255, 0, 255).astype(np.uint8)return noisy_image

在这里插入图片描述

总结

这就是本文的全部内容了,看似简单的两个函数,其实动手写还是会出现很多问题的,基本功还是不扎实,希望大家也要专注于编程的基本功。


http://www.ppmy.cn/news/352220.html

相关文章

计算机噪声

序 大家多少都遇到过关于“随机数”和“噪声”的问题&#xff0c;随机数和噪声直接关系到仿真结果的好坏。而计算机产生的随机数是伪随机数&#xff0c;不真正的随机&#xff0c;那么我们使用的随机数&#xff0c;包括Matlab产生的随机数的质量到底如何呢&#xff1f;什么时候使…

噪声估计

参考&#xff1a; 北京1号小卫星图像噪声评估 光学传感器获取图像中的噪声一般为加性噪声 , 即叠加在图像上且与图像信号无关的噪声。通常认为这种噪声是高斯分布且功率谱密度均匀的高斯白噪声, 噪声的大小用其标准差进行衡量。也就是说在光学传感器这里我们一般得到的先验是…

图像噪声

1.1 图像噪声的概念与分类 图像噪声是图像在摄取或传输时所受的随机信号干扰&#xff0c;是图像中各种妨碍人们对其信息接受的因素。很多时候将图像噪声看成是多维随机过程&#xff0c;因而描述噪声的方法完全可以借用随机过程的描述&#xff0c;即用其概率分布函数和概率密度分…

图像噪声与去噪

图像的空域噪声以及二维降噪算法介绍 1 图像噪声的成因 图像在生成和传输过程中常常因受到各种噪声的干扰和影响而是图像降质&#xff0c;这对后续图像的处理和图像视觉效应将产生不利影响。噪声种类很多&#xff0c;比如:电噪声&#xff0c;机械噪声&#xff0c;信道噪声和其他…

高斯噪声

高斯噪声 图像噪声之高斯噪声&#xff08;gauss noise&#xff09; 概述&#xff1a; 高斯噪声是指它的概率密度函数服从高斯分布&#xff08;即正态分布&#xff09;的一类噪声 与椒盐噪声相似&#xff08;Salt And Pepper Noise&#xff09;&#xff0c;高斯噪声&#xf…

噪声系数、等效噪声温度(一)

文章目录 前言&#xff1a;一、黑体辐射定律二、等效噪声温度三、噪声系数四、两者的关系 & 级联公式未完待续。。。下期见&#xff01; 前言&#xff1a; 最近在看NF系数相关文档&#xff0c;有些体会~我怕自己忘了&#xff0c;把东西整理一下&#xff0c;同时分享给大家…

噪声种类及Matlab添加噪声

文章目录 一、噪声种类二、Matlab添加高斯噪声三.添加椒盐噪声四.添加泊松噪声五.添加乘性噪声六.产生均匀分布的噪声七.产生指数分布的噪声 一、噪声种类 1 高斯噪声 源于电子电路噪声和由低照明度或高温带来的传感器噪声&#xff08;可通过空域滤波的平滑或图像复原技术来消…

数据噪声以及去噪

数据挖掘中的噪声简介 实际数据是数据挖掘算法的输入&#xff0c;它受多个组件的影响。其中&#xff0c;噪声的存在是关键因素。噪声是不可避免的问题&#xff0c;它会影响数据挖掘应用程序中经常发生错误的数据收集和数据准备过程。噪声有两个主要来源&#xff1a;隐式错误由…