01:高斯噪声和椒盐噪声

这篇具有很好参考价值的文章主要介绍了01:高斯噪声和椒盐噪声。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

记录一下手写椒盐噪声和高斯噪声的python程序。
效果图如下:
01:高斯噪声和椒盐噪声


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

椒盐噪声和高斯噪声都是数字图像处理中常见的噪声类型。
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_copy
    image_copy = image.copy()
    #prob*255就是我们选的那个阈值
    image_copy[np.where(noise < prob*255)] = 0
    image_copy[np.where(noise > (1-prob)*255)] = 255
    return 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也要转化为float32
    noise = 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_copy
    image_copy = image.copy()
    image_copy[np.where(noise < prob*255)] = 0
    image_copy[np.where(noise > (1-prob)*255)] = 255
    return 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 + noise
    noisy_image = np.clip(noisy_image*255, 0, 255).astype(np.uint8)
    return noisy_image

01:高斯噪声和椒盐噪声

总结

这就是本文的全部内容了,看似简单的两个函数,其实动手写还是会出现很多问题的,基本功还是不扎实,希望大家也要专注于编程的基本功。文章来源地址https://www.toymoban.com/news/detail-449028.html

到了这里,关于01:高斯噪声和椒盐噪声的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • opencv笔记:高斯滤波和中值滤波对椒盐噪声的处理

      目录 1. 椒盐噪声简介 2. 高斯滤波的原理和实现  2.1. 高斯滤波的原理    2.2. 高斯滤波的API  3. 中值滤波的原理和实现   3.1. 中值滤波的原理   3.2. 中值滤波的API 4. 高斯滤波和中值滤波对椒盐噪声的处理结果 数字图像处理中,噪声会导致图像质量下降和信息的丢失,因此

    2024年02月07日
    浏览(50)
  • python使用opencv对图像添加(高斯/椒盐/泊松/斑点)噪声

    导读 这篇文章主要介绍如何利用opencv来对图像添加各类噪声,原图 高斯噪声 高斯噪声就是给图片添加一个服从 高斯分布的噪声 ,可以通过调节高斯分布 标准差(sigma) 的大小来控制添加噪声程度, sigma 越大添加的噪声越多图片损坏的越厉害 椒盐噪声 椒盐噪声就是给图片添

    2024年02月15日
    浏览(58)
  • 【数字图像处理】灰度图像中添加高斯噪声、椒盐噪声、斑点噪声以及利用不同方法(中值、排序、维纳滤波)去除各种噪声的matlab程序

    图像处理问题描述: 1、图像中分别加入不同方差的高斯噪声、不同噪声密度椒盐噪声和不同方差的斑点噪声(Gaussian noise, salt  pepper noise and speckle noise) 2、分别通过函数medfilt2、ordfilt2和 Wiener 2 去除图像中添加的一些噪声(Gaussian noise, salt  pepper noise and speckle noise)。 各部

    2024年02月07日
    浏览(57)
  • Matlab实现图像添加椒盐噪声及中值滤波/均值滤波去除

    椒盐噪声(peppersalt noise)由胡椒噪声(pepper noise)和盐噪声(salt noise)组成。一般因图像传感器,传输信道等处产生,由黑白相间的亮暗点噪声组成。 黑点可以看出胡椒,白点可以看成盐。 下面为使用matlab自带的函数对图像添加椒盐噪声的代码和添加后的结果。 均值滤波

    2024年02月11日
    浏览(44)
  • 【OpenCV • c++】图像噪音 | 椒盐噪音 | 高斯噪音

      图像噪声是图像在获取或是传输过程中受到随机信号干扰,妨碍人们对图像理解及分析处理的信号。很多时候将图像噪声看做多维随机过程,因而描述噪声的方法完全可以借用随机过程的描述, 也就是用它的概率分布函数和概率密度分布函数。图像噪声的产生来自图像获

    2024年02月08日
    浏览(34)
  • 高斯噪声(Gaussian noise)

    高斯噪声,也称为白噪声或随机噪声,是一种符合高斯(正态)分布的随机信号或干扰。它的特点是在所有频率上具有恒定的功率谱密度,使其在不同频率上呈现出等能量的随机波动。 从实际角度来看,高斯噪声是指在各种系统和过程中发生的随机变化或扰动。它存在于许多

    2024年02月10日
    浏览(53)
  • LABVIEW--正弦+高斯噪声信号及滤波

    前面板信号 后面板 LABVIEW源程序 链接:https://pan.baidu.com/s/11B-75i4fHZwWQyjxn9yCyQ?pwd=7tfj  提取码:7tfj

    2024年04月14日
    浏览(40)
  • python3图像加高斯噪声

    高斯噪声是指它的概率密度函数服从高斯分布(即正态分布)的一类噪声。常见的高斯噪声包括起伏噪声、宇宙噪声、热噪声和散粒噪声等等。 除常用抑制噪声的方法外,对高斯噪声的抑制方法常常采用数理统计方法。 高斯白噪声:如果一个噪声,它的幅度分布服从高斯分

    2024年02月08日
    浏览(43)
  • Opencv-图像噪声(均值滤波、高斯滤波、中值滤波)

    图像噪声是图像处理中常见的问题,它是由于各种原因引入的不希望的随机变化或干扰,导致图像质量下降。噪声可以出现在图像的亮度、颜色和纹理等方面,对图像分析、计算机视觉和图像处理任务造成困难。为了减少或消除图像中的噪声,常常使用不同类型的滤波技术。

    2024年02月04日
    浏览(67)
  • matlab给信号添加高斯白噪声——awgn函数

    `awgn`函数是MATLAB中用于向信号添加高斯白噪声的函数。`awgn`是\\\"Additive White Gaussian Noise\\\"的缩写,意思是添加白噪声。 `awgn`函数是MATLAB中用于给信号添加高斯白噪声的函数。它的语法如下: 其中,`x`是原始信号,`snr`是信噪比(Signal-to-Noise Ratio)。函数返回添加了噪音的信号`

    2024年01月16日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包