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

目录

[一 涉及的函数](#一 涉及的函数)

[二 实践](#二 实践)


一 涉及的函数

  • skimage.util.random_noise( )
python 复制代码
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( )
python 复制代码
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 实践①

  • 代码
python 复制代码
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 实践②

  • 代码
python 复制代码
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角点检测

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

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

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

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

相关推荐
Uncertainty!!14 天前
数字图像处理:图像分割应用
数字图像处理·阈值分割法·区域生长法·边缘检测法
爱奔跑的虎子21 天前
FPGA图像处理之均值滤波
图像处理·matlab·fpga开发·fpga·数字图像处理·vivao
Uncertainty!!1 个月前
数字图像处理:空间域滤波
数字图像处理·中值滤波·均值滤波·空间域滤波·高斯滤波
Uncertainty!!1 个月前
数字图像处理:边缘检测
数字图像处理·sobel算子·roberts算子·prewitt算子·laplace算子·log算子·dog算子
imblackcat1 个月前
【科研小小白】理解图片容量、像素、尺寸、分辨率各自含义、 像素、分辨率与实际尺寸之间的转换关系
python·数字图像处理·传统数字图像处理算法
无敌海苔咪4 个月前
实验四 图像增强—灰度变换之直方图变换
图像处理·计算机视觉·matlab·数字图像处理
无敌海苔咪4 个月前
实验六 图像的傅立叶变换
图像处理·算法·计算机视觉·matlab·数字图像处理
是瑶瑶子啦5 个月前
【计算机视觉】数字图像处理基础:以像素为单位的图像基本运算(点运算、代数运算、逻辑运算、几何运算、插值)
计算机视觉·数字图像处理·数字图像·点运算·代数运算·插值算法
???/cy5 个月前
数字图像处理系列 | 线性滤波(高斯滤波)(3)
人工智能·深度学习·数字图像处理
???/cy5 个月前
数字图像处理系列 | 非线性滤波 (4)
人工智能·计算机视觉·数字图像处理·非线性滤波