文章目录

  • 前言
  • 一、高斯噪声和椒盐噪声是什么?
  • 二、编写程序
    • 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

总结

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

01:高斯噪声和椒盐噪声相关推荐

  1. python+OpenCv笔记(八):图像噪声(椒盐噪声、高斯噪声)

    由于图像采集.处理.传输等过程不可避免的会受到噪声的污染,妨碍人们对图像理解及分析处理.常见的图像噪声有高斯噪声.椒盐噪声等. 一.椒盐噪声 椒盐噪声也称为脉冲噪声,是图像中经常见到的一种噪声,它是一 ...

  2. python高斯滤波和降噪_python添加高斯噪声和椒盐噪声,实现中值滤波和均值滤波,实现Roberts算子和Sobel算子...

    写在前面 HIT大三上学期视听觉信号处理课程中视觉部分的实验一,经过和学长们实验的对比发现每一级实验要求都不一样,因此这里标明了是2019年秋季学期的视觉实验一. 由于时间紧张,代码没有进行任何优化, ...

  3. 浅析“高斯白噪声”,“泊松噪声”,“椒盐噪声”的区别

    from:https://www.jianshu.com/p/67f909f3d0ce 在图像处理的过程中,一般情况下都进行图像增强,图像增强主要包括"空域增强"和"频域 ...

  4. 通过matlab编程,对以下图像分别添加高斯噪声和椒盐噪声(参数自定),并使用理想低通滤波器、高斯低通滤波器和巴特沃斯低通滤波器进行去噪。

    添加高斯噪声和椒盐噪声,并用理想低通滤波器进行去噪 t=imread('C:\Users\Administrator\Desktop\123.jpg'); subplot(3,2,1) imshow( ...

  5. python添加高斯噪声_使用Python-OpenCV向图片添加噪声(高斯噪声、椒盐噪声)

    在matlab中,存在执行直接得函数来添加高斯噪声和椒盐噪声.Python-OpenCV中虽然不存在直接得函数,但是很容易使用相关的函数来实现. 代码: import numpy as np impo ...

  6. 数字图像处理——高斯噪声和椒盐噪声区别

    高斯噪声和椒盐噪声 以Lina图像为例 两者在视觉上的区别就是,高斯噪声是和原来图像像素值相关的噪声,而椒盐噪声则是很多的黑白像素点. 高斯噪声 高斯噪声是指它的概率密度函数服从高斯分布(即正态分布) ...

  7. 图片添加高斯噪声和椒盐噪声python

    使用Python给图片添加高斯噪声和椒盐噪声,在研究图像降噪算法时,经常会使用到,简单的写了几行代码. import cv2 import os import numpy as npdef Expan ...

  8. python给图像添加噪声(高斯噪声、椒盐噪声)

    方法 1.首先我们要用到 skimage 第三方库,安装方法: pip install scikit-image 2.代码部分,我们使用数据批处理方式: from PIL import Image f ...

  9. 通过matlab编程,对该图像分别添加高斯噪声和椒盐噪声(参数自定),并使用均值滤波、高斯滤波和中值滤波进行去噪。

    分别添加高斯和椒盐噪声 im = imread('C:\Users\Administrator\Desktop\123456.jpg');% 1)生成含有高斯噪声.椒盐噪声的图像 % imnoise ...

最新文章

  1. mysql学习之旅-数据库自动备份-测试环境搭建
  2. SQLServer常见性能问题
  3. Android使用缓存优化ListView
  4. linux的常用操作——压缩和解压缩
  5. java切面不需要接口了吗_详解Spring AOP 实现“切面式”valid校验
  6. 学习——java内存模型
  7. VSTO/Excel: 获取Excel图表中的某个点的数据
  8. QtQuick 技巧 2
  9. 高分辨透射电镜(HRTEM)样品怎么制?看这一篇就够了
  10. android 各版本介绍,Android的版本的介绍
  11. Java牛客网输入测试用例
  12. java商品类_编写java的一个商品类,急用,求大神帮忙,非常感谢
  13. 区块链三加一:资产不可复制性
  14. “京东红”托起“松石绿” 湖北十堰让世界发现中国珠宝之美
  15. C4D快速入门教程——挤压
  16. 中层管理者如何脱颍而出?
  17. 易语言魔兽世界怀旧服自动钓鱼源码
  18. 关键路径法详解【CPM】
  19. 刨根问底-AQS源码解析
  20. 中投董事长:黑石是很好投资 持有两房债会赚钱

热门文章

  1. js - 内存溢出与内存泄漏
  2. 福昕阅读器 单个标签页单个窗口展示
  3. 云图数字iOS客户端
  4. 关于(object sender, EventArgs e)
  5. 外汇券商TFS-ICAP因误导客户并使用虚假报告被FCA处罚340万英镑
  6. 「微服务系列」统一网关Gateway
  7. 设置 app 不能在模拟器上运行
  8. 什么是软件测试,软件测试究竟是做什么的
  9. java调第三方接口
  10. rust键位失灵_用Rust写操作系统(四)——竞争条件与死锁