Python实现图像随机添加椒盐噪声和高斯噪声

针对题目“Python实现图像随机添加椒盐噪声和高斯噪声”的完整攻略,可以分为以下步骤:

第一步:读取图像并进行预处理

在Python中,可以使用OpenCV库来读取图像,并对图像进行预处理,如调整图像大小、改变图像颜色空间等。在读取图像时,建议采用灰度图像读取方式,便于后续噪声生成和处理。示例代码如下:

import cv2

# 读取灰度图像
img = cv2.imread("test_img.jpg", 0)

第二步:随机噪声生成

Python中可以使用numpy库中的random模块来生成随机噪声。这里需要分别生成椒盐噪声和高斯噪声。其中椒盐噪声的生成方式是将图像中的某些像素点设为最大值或最小值,模拟出“盐”和“椒”的形态。高斯噪声则是在图像中添加符合高斯分布的随机噪声。示例代码如下:

import numpy as np

# 添加椒盐噪声
def add_salt_pepper_noise(image, prob):
    output = np.zeros(image.shape, np.uint8)
    thres = 1 - prob
    for i in range(image.shape[0]):
        for j in range(image.shape[1]):
            rdn = np.random.random()
            if rdn < prob:
                output[i][j] = 0
            elif rdn > thres:
                output[i][j] = 255
            else:
                output[i][j] = image[i][j]
    return output

# 添加高斯噪声
def add_gaussian_noise(image, mean=0, var=0.1):
    image = np.array(image / 255, dtype=float)
    noise = np.random.normal(mean, var ** 0.5, image.shape)
    out = image + noise
    if out.min() < 0:
        low_clip = -1.
    else:
        low_clip = 0.
    out = np.clip(out, low_clip, 1.0)
    out = np.uint8(out * 255)
    return out

第三步:噪声添加

将生成的噪声随机添加到原始图像中。示例代码如下:

# 随机添加椒盐噪声
img_salt_pepper = add_salt_pepper_noise(img, 0.01)

# 随机添加高斯噪声
img_gaussian = add_gaussian_noise(img)

第四步:结果对比

将添加噪声后的图像与原始图像进行对比,可以发现噪声的效果。示例代码如下:

# 显示原始图像和添加噪声后的图像
cv2.imshow("Original Image", img)
cv2.imshow("Salt and Pepper Noise", img_salt_pepper)
cv2.imshow("Gaussian Noise", img_gaussian)
cv2.waitKey(0)
cv2.destroyAllWindows()

综上所述,以上就是Python实现图像随机添加椒盐噪声和高斯噪声的完整攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python实现图像随机添加椒盐噪声和高斯噪声 - Python技术站

(0)
上一篇 2023年6月3日
下一篇 2023年6月3日

相关文章

  • Python 并行化执行详细解析

    Python并行化执行是指在Python中使用多线程或多进程技术,实现并行化执行任务,提高程序的执行效率。本文将讲解Python并行化执行的详细解析,包括以下几个方面: Python多线程和多进程的区别 Python多线程的实现方法 Python多进程的实现方法 实践示例 Python多线程和多进程的区别 Python多线程和多进程都是实现并行化执行任务的方…

    python 2023年5月15日
    00
  • python process模块的使用简介

    下面是关于Python Process模块的使用简介: Python的Process模块 Process是Python中用来启动新进程的模块,可以实现跨平台的多进程操作。使用Process模块可以在Python中实现多任务的并发运行,从而有效提升程序的运行效率,加快任务的完成速度。 Process模块的基本使用方法 Python的Process用法类似于Un…

    python 2023年5月19日
    00
  • Python办公自动化从Excel中计算整理数据并写入Word

    以下是Python办公自动化从Excel中计算整理数据并写入Word的完整实例教程。 目录 准备工作 读取Excel数据 计算Excel数据 整理数据并写入Word 完整代码 准备工作 在开始编写这个自动化脚本之前,我们需要安装两个依赖库xlrd和python-docx用于处理Excel和Word文件。 pip install xlrd python-doc…

    python 2023年5月13日
    00
  • python3格式化字符串 f-string的高级用法(推荐)

    让我们来详细讲解一下Python 3中格式化字符串f-string的高级用法。 格式化字符串f-string的基本用法 首先,我们来回顾一下格式化字符串f-string的基本用法。 在Python 3中,我们可以使用f-string来进行字符串格式化,它的语法格式非常简单,使用一对花括号{}来代表要格式化的变量或者表达式,然后在前面加上字母f,例如: nam…

    python 2023年6月5日
    00
  • Python 开发工具PyCharm安装教程图文详解(新手必看)

    Python 开发工具PyCharm安装教程图文详解(新手必看) PyCharm是 JetBrains公司开发的Python开发工具,是Python官方推荐的开发工具之一,具有可视化调试,代码自动补全,智能提示等功能。本文将会详细介绍PyCharm的安装步骤,以及使用PyCharm创建项目和运行Python文件的方法。 第一步:下载并安装PyCharm 首先…

    python 2023年5月30日
    00
  • python通过opencv实现图片裁剪原理解析

    下面我将为你详细讲解“Python通过OpenCV实现图片裁剪原理解析”的完整攻略。 一、前言 在进行图片处理中,图片裁剪是一项很基础的操作,也是一项非常常见的操作。Python作为一门语言,拥有着大量的优秀的库,其中OpenCV就是一款广泛应用于图片处理的库。本文将通过OpenCV实现图片裁剪,首先我们需要了解裁剪的原理。 二、原理解析 图片裁剪是一种从图…

    python 2023年5月18日
    00
  • 常用python编程模板汇总

    常用Python编程模板汇总 – 完整攻略 概述 编程模板是在开始编写代码之前制定的计划,可大大减少代码错误和增加代码的可读性。本文将列出一些常用的Python编程模板,方便大家学习和使用。 模板一:输入输出模板 下面是一个常用的Python输入输出模板,可用于循环读取并处理多组数据。 while True: try: n = input() # 根据具体需…

    python 2023年5月19日
    00
  • 如何通过Python实现定时打卡小程序

    下面是如何通过 Python 实现定时打卡小程序的完整攻略。 1. 准备工作 首先需要安装第三方库 schedule 和 selenium。可以使用以下代码进行安装: pip install schedule pip install selenium 同时,需要下载 Chrome 浏览器,并下载对应的 ChromeDriver。下载地址:http://chr…

    python 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部