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

目录

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

[二 实践](#二 实践)


一 涉及的函数

  • 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角点检测

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

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

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

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

相关推荐
程序员Linc8 天前
了解图像质量评价指标PSNR
数字图像处理·psnr·图像质量评价
程序员Linc9 天前
《数字图像处理》第三章 3.7 混合空间增强法笔记:原理、实现与Python实战
开发语言·笔记·python·数字图像处理·混合空间增强
程序员Linc9 天前
《数字图像处理》第四章 频率域滤波简要学习笔记以及频率域滤波与空间域滤波的区别
笔记·学习·数字图像处理·频率域滤波
程序员Linc11 天前
《数字图像处理》第三章 3.8 基于模糊技术的图像强度变换与空间滤波学习笔记
笔记·学习·数字图像处理·模糊技术·强度变换·空间滤波
程序员Linc17 天前
《数字图像处理》第三章3.3直方图处理学习笔记
笔记·python·数字图像处理·直方图
Uncertainty!!5 个月前
数字图像处理:图像分割应用
数字图像处理·阈值分割法·区域生长法·边缘检测法
爱奔跑的虎子6 个月前
FPGA图像处理之均值滤波
图像处理·matlab·fpga开发·fpga·数字图像处理·vivao
Uncertainty!!6 个月前
数字图像处理:空间域滤波
数字图像处理·中值滤波·均值滤波·空间域滤波·高斯滤波
Uncertainty!!6 个月前
数字图像处理:边缘检测
数字图像处理·sobel算子·roberts算子·prewitt算子·laplace算子·log算子·dog算子
imblackcat6 个月前
【科研小小白】理解图片容量、像素、尺寸、分辨率各自含义、 像素、分辨率与实际尺寸之间的转换关系
python·数字图像处理·传统数字图像处理算法