数字图像处理(实践篇)十三 数据增强之给图像添加噪声!

news2024/11/26 23:37:01

目录

一 涉及的函数

二 实践


一 涉及的函数

  • skimage.util.random_noise( )
skimage.util.random_noise(image, mode='gaussian', seed=None, clip=True, **kwargs)

函数的功能:为浮点型图片添加各种随机噪声。

输入:

①image:输入图像,将会被转换成浮点型。

②mode: 可选,为要加的噪声类型。主要有 gaussian:高斯噪声。localvar:高斯分布的加性噪声,在“图像”的每个点处具有指定的局部方差。poisson:泊松噪声。salt:盐噪声,随机将像素值变成1。pepper:椒噪声,随机将像素值变成0或-1,取决于矩阵的值是否带符号。s&p:椒盐噪声。speckle:乘噪声使用out = image + n*image,其中N是具有指定均值和方差的均匀噪声。

③seed: 可选,int型。如果选择的话,在生成噪声前会先设置随机种子以避免伪随机。

④clip: 可选,bool型。如果是True,在添加均值,泊松以及高斯噪声后,会将图片的数据裁剪到合适范围内。如果值为False,则输出矩阵的值可能会超出[-1,1]。

...

返回值:

ndarry型,且值在[0,1]或者[-1,1]之间,取决于是否有符号数。

  • skimage.util.montage( )
skimage.util.montage(arr_in, fill='mean', rescale_intensity=False, grid_shape=None, padding_width=0, multichannel=False, *, channel_axis=None)

函数功能:创建多个单通道或多通道图像的蒙太奇。

输入:

arr_in:一个数组,表示 K 个形状相同的图像的集合。

fill:可选。

rescale_intensity:布尔型,可选。是否将每张图像的强度重新缩放为 [0, 1]。

grid_shape:元组,可选。

padding_width:int, 可选。

multichannel:布尔值,可选。此参数已弃用改为指定 channel_axis

channel_axis:int,可选。

返回:

输入图像粘合在一起的输出数组(包括填充p)。

二 实践

1 实践①

  • 代码
from skimage.io import imread
from skimage.util import random_noise
import matplotlib.pyplot as plt
def dealImageResult(img_path):
    im = imread(img_path)
    gaussian_noisy_img = random_noise(im, mode='gaussian', var=0.5**2)
    poisson_noisy_img = random_noise(im, mode='poisson')
    pepper_noisy_img = random_noise(im, mode='pepper')
    salt_noisy_img = random_noise(im, mode='salt')
    sp_noisy_img = random_noise(im, mode='s&p')
    fig = plt.figure(figsize=(10, 10))
    titles = ["img", " gaussian", "poisson", "pepper", "salt", "s&p"]
    images = [im, gaussian_noisy_img, poisson_noisy_img, pepper_noisy_img, salt_noisy_img, sp_noisy_img]
    for i in range(6):
        plt.subplot(2, 3, i + 1), plt.imshow(images[i], 'gray')
        plt.title(titles[i])
        plt.xticks([]), plt.yticks([])
    plt.show()
    fig.savefig('test_results.jpg', bbox_inches='tight')
if __name__ == '__main__':
    dealImageResult("3.jpg")
    pass
  • 结果图

2 实践②

  • 代码
import numpy as np
from skimage.io import imread
from skimage.util import random_noise, montage
import matplotlib.pyplot as plt
def dealImageResult(img_path):
    im = imread(img_path)
    sigmas = np.linspace(0, 1, 9)
    noisy_images = np.zeros((9, im.shape[0], im.shape[1], im.shape[2]))
    for i in range(len(sigmas)):
        noisy_images[i, :, :, :] = random_noise(im, var=sigmas[i]**2)
    noisy_montage = montage(noisy_images, rescale_intensity=True, channel_axis=-1)
    fig = plt.figure(figsize=(10, 10))
    plt.imshow(noisy_montage)
    plt.title('Noisy montage', size=10)
    plt.axis('off')
    plt.show()
    fig.savefig('test_results.jpg', bbox_inches='tight')
if __name__ == '__main__':
    dealImageResult("5.jpg")
    pass
  • 结果图

前文回顾

入门篇目录

 数字图像处理(入门篇)一 图像的数字化与表示

 数字图像处理(入门篇)二 颜色空间

 数字图像处理(入门篇)三 灰度化

 数字图像处理(入门篇)四 像素关系

 数字图像处理(入门篇)五 图像数据预处理之颜色空间转换

 数字图像处理(入门篇)六 图像数据预处理之坐标变化

 数字图像处理(入门篇)七 图像数据预处理之灰度变化

 数字图像处理(入门篇)八 图像数据预处理之直方图

 数字图像处理(入门篇)九 图像数据预处理之滤波

 数字图像处理(入门篇)十 边缘检测

 数字图像处理(入门篇)十一 形态学处理

 数字图像处理(入门篇)十二 自适应阈值分割

 数字图像处理(入门篇)十三 仿射变换

 数字图像处理(入门篇)十四 透视变换

实践篇目录

数字图像处理(实践篇)一 将图像中的指定目标用bBox框起来吧!

数字图像处理(实践篇)二 画出图像中目标的轮廓

数字图像处理(实践篇)三 将两张图像按照指定比例融合

数字图像处理(实践篇)四 图像拼接-基于SIFT特征点和RANSAC方法

数字图像处理(实践篇)五 使用Grabcut算法进行物体分割

数字图像处理(实践篇)六 利用hough变换进行直线检测

数字图像处理(实践篇)七 利用霍夫变换进行圆环检测

数字图像处理(实践篇)八 Harris角点检测

数字图像处理(实践篇)九 基于边缘的模板匹配

数字图像处理(实践篇)十 图像质量检测

数字图像处理(实践篇)十一 图像中的条形码解析

数字图像处理(实践篇)十二 基于小波变换的图像降噪

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1267237.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构第五课 -----二叉树的代码实现

作者前言 🎂 ✨✨✨✨✨✨🍧🍧🍧🍧🍧🍧🍧🎂 ​🎂 作者介绍: 🎂🎂 🎂 🎉🎉&#x1f389…

代码混淆的原理和方法详解

代码混淆的原理和方法详解摘要移动App的广泛使用带来了安全隐患,为了保护个人信息和数据安全,开发人员通常会采用代码混淆技术。本文将详细介绍代码混淆的原理和方法,并探讨其在移动应用开发中的重要性。 引言随着移动应用的普及,…

卷轴模式:金融领域的新趋势

卷轴模式在金融领域逐渐崭露头角,成为一种新型的投资策略。这种模式基于完成任务或达成特定目标来获取积分,利用这些积分进行投资或获取现实物品。它不同于传统的资金盘,而是以一种更稳健的方式运作,避免了资金盘的风险。 一、卷轴…

用BootLoader更新S32K144的固件

1、工具:MDK及S32K144的支持包 创芯科技的USB转CAN 及 驱动 Jlink烧写器及驱动 链接:https://pan.baidu.com/s/1jGRdGVEzrO86CpP5UQ2fYQ 提取码:nihd IAP固件升级上位机 2、BootLoader底层文件 a、用MDK打开BootLoader工程 b、更改配置…

《golang设计模式》第三部分·行为型模式-09-策略模式(Strategy)

文章目录 1. 概述1.1 作用1.1 角色1.2 类图 2. 代码示例2.1 设计2.2 代码2.3 类图 1. 概述 1.1 作用 策略(Strategy)是用于封装一组算法中单个算法的对象,这些策略可以相互替换,使得单个算法的变化不影响使用它的客户端。 1.1 …

C# API 文档自动生成器

文章目录 前言SandcastleDocFX 前言 最近要和别人交际,就要给API文档,但是感觉API文件手动写有点麻烦,想着怎么弄一个自动API文档生成 Sandcastle 折腾了两小时,好像不太好用 微软开源全新的文档生成工具DocFX DocFX 既然不好…

私域流量灵魂三问

私域流量灵魂三问: 1、是什么? 2、为什么做? 3、怎么做?

嵌入式LCD软件驱动流程与调试

前言 LCD屏在嵌入式中是应用比较广泛的,很多电子产品都是需要用到它来进行人机交互,那么工作中我们就少不了要对lcd进行软件驱动和调试。调试LCD需要掌握的学问有很多,没有一定的调试经验就很难对问题进行分析并解决。 博文推荐 LCD屏接口与…

网络协议系列:TCP三次握手,四次挥手的全过程,为什么需要三次握手,四次挥手

TCP三次握手,四次挥手的全过程,为什么需要三次握手,四次挥手 一. TCP三次握手,四次挥手的全过程,为什么需要三次握手,四次挥手前言TCP协议的介绍三次握手三次握手流程:1. A 的 TCP 向 B 发送 连…

LVS-NAT实验

实验前准备: LVS负载调度器:ens33:192.168.20.11 ens34:192.168.188.3 Web1节点服务器1:192.168.20.12 Web2节点服务器2:192.168.20.13 NFS服务器:192.168.20.14 客户端(win11…

速速报名!请查收 2023 龙蜥操作系统大会超全指南

亲爱的小伙伴们,大家好!我是大家的老朋友小龙!自 2023 龙蜥操作系统大会宣布启动以来,小龙收到了来自四面八方的诸多期待和小心心。首届龙蜥大会正如火如荼地进行中,为表示对关注社区的每一位小伙伴由衷的感谢&#xf…

排序算法基本原理及实现1

📑打牌 : da pai ge的个人主页 🌤️个人专栏 : da pai ge的博客专栏 ☁️宝剑锋从磨砺出,梅花香自苦寒来 📑插入排序 &#x1f4…

人工智能即将彻底改变你使用计算机的方式

文章目录 每个人的私人助理“Clippy 是一个机器人,而不是特工。”卫生保健“一半需要心理健康护理的美国退伍军人没有得到治疗。”教育生产率娱乐和购物科技行业的冲击波技术挑战隐私和其他重大问题 今天我仍然像保罗艾伦和我创办微软时一样热爱软件。但是&#xff…

Linux系统之一次性计划任务at命令的基本使用

Linux系统之一次性计划任务at命令的基本使用 一、at命令介绍二、at命令的使用帮助2.1 at命令的help帮助信息2.2 at命令的语法解释 三、at命令的日常使用3.1 立即执行一次性任务3.2 指定时间执行一次性任务3.3 查询计划任务3.4 其他指定时间用法3.5 删除已经设置的计划任务3.6 显…

C语言——计算Fibonacci数列

方式一 for循环 (20位) #define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h> int main() {int n;int a[20]{1,1};for ( n 1; n <20; n){a[n]a[n-2]a[n-1];}for ( n 0; n < 20; n){if(n%50)printf("\n");printf("%12d ",a[n]);}return 0; …

【每日一题】无限集中的最小数字

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;有限集合方法二&#xff1a;有序集合 写在最后 Tag 【有序集合】【2023-11-29】 题目来源 2336. 无限集中的最小数字 题目解读 设计一个类实现移除无限集中的最小整数以及向该无限集中增加一个原集合中不存在的整数。…

【JavaEE初阶】 HTTP响应报文

文章目录 &#x1f332;序言&#x1f38d;200 OK&#x1f340;404 Not Found&#x1f384;403 Forbidden&#x1f334;405 Method Not Allowed&#x1f38b;500 Internal Server Error&#x1f333;504 Gateway Timeout&#x1f332;302 Move temporarily&#x1f38d;301 Move…

vs2012切换版本后WebUI项目加载失败,右键重新加载提示已经在解决方案中打开了具有该名称的项目

问题描述 vs2012切换版本后&#xff0c;回到主版本web项目加载失败&#xff0c;右键重新加载提示已经在解决方案中打开了具有该名称的项目 解决办法 打开根目录.csproj文件&#xff0c;找到第一个ProectTypeGuides节点&#xff0c;删除掉。然后关闭vs,重新打开此项目即可。这…

rust-flexi_logger

flexi_logger 是字节开源的rust日志库。目前有log4rs、env_log 等库&#xff0c;综合比较下来&#xff0c;还是flexi_logger简单容易上手&#xff0c;而且自定义很方便&#xff0c;以及在效率方面感觉也会高&#xff0c;下篇文章我们来测试下。 下面来看下怎么使用 关注 vx gol…

bugku题解记录2

文章目录 哥哥的秘密黄道十二官where is flag一段新闻 哥哥的秘密 给出了一个qq&#xff0c;那就去看看呗 hint里面说 收集空间信息——相册——收集微博信息——相册——解题——相册——提交flag 那看看空间先 盲文&#xff1a; hint&#xff1a;密码时地人 旗帜存在相册里…